Я создаю новые пакеты с использованием Object Model и C#. Я создаю пакеты с подпакетами рекурсивно, и это отлично работает. Тем не менее, мои изменения не отображаются в EA после того, как сценарий завершен, если я не вручную обновляю проект с помощью ctrlshiftF11, после чего мои созданные пакеты отображаются в соответствии с назначением.Новые созданные пакеты появляются только после обновления вручную
Я обновляю недавно созданный пакет newPackage.Update();
, а также обновляю пакеты родительского пакета parentPackage.Packages.Refresh();
.
После рекурсивно создания всех пакетов я дополнительно позвонить Model.Update()
, Repository.Models.Refresh();
, Model.Packages.Refresh();
Aswell в Repository.Exit()
.
EA, похоже, перерисовывает представление, но не отображает вновь созданные пакеты.
Не хватает ли какого-либо вызова в конце, который обновляет представление?
Я использую этот код:
eaApplication = new EA.App(); // Create interface to EA
eaRepository = eaApplication.Repository;
eaRepository.EnableUIUpdates = true;
eaRepository.OpenFile(pathToEAPfile)
EA.Package eaModel = eaRepository.Models.GetAt(0);
EA.Package testModelPackage = (getting it via for loop);
EA.Package newPack = testModelPackage.Packages.AddNew("foopackage", "System.__ComObject");
newPack.Update();
testModelPackage.Packages.Refresh();
eaRepository.RefreshModelView(0);
eaRepository.Exit();
Спасибо за ваш быстрый ответ. Тем не менее, это все еще не делает трюк. Я также попытался передать индивидуальные идентификаторы пакетов для всех вновь созданных пакетов без успеха. – Lukas
Вам необходимо передать родительский пакет. Это будет каскадом вниз. Сначала попробуйте с '0', чтобы увидеть, что он обновляет весь вид. –
Передача идентификатора родительского пакета также не работает. – Lukas