Мое приложение использует конструктор рабочих процессов, позволяющий конечным пользователям разрабатывать рабочие процессы. У меня есть активность, которая требует, чтобы пользователь установил некоторое состояние. Для этого в конструкторе я переопределяю Initialize (Activity) и показываю форму, которую затем использую для установки значений в моей Activity. Это для установки состояния при первоначальном добавлении Действия. У меня также есть обработчик событий двойного щелчка в конструкторе на случай, если им нужно будет отредактировать это состояние позже.
Теперь у меня есть ситуация, когда в зависимости от значений в форме мне может понадобиться добавить или удалить дочернее действие. Мне удалось добавить это задание, но не всегда оно было показано в конструкторе.
Когда вызывается Initialize, дочерние действия отсутствуют. Возможно, мне нужно добавить дочернюю активность. На данный момент он работает нормально и отображается в конструкторе. Проблема возникает, когда они редактируют его позже, дважды щелкнув. В моем конструкторе я переопределяю OnActivityChanged, чтобы обнаружить это. Я делаю тот же звонок, чтобы добавить ребенка, но дизайнер не обновляется. Как ни странно, когда ситуация такова, что дочерний элемент удаляется, представление обновляется нормально.
Выполнение отладчика показывает, что я добавляю дочернее действие в коллекцию Activity. Обычно, когда у меня возникают проблемы с обновлением представления, я могу вызвать IComponentChangeService.OnComponentChanged, но не могу найти способ заставить это работать.
Есть предложения?
Похоже, мне нужно было использовать RemoveActivities и InsertActivities в конструкторе. Похоже, что дизайнер не слушает события изменения списка в списке действий. Кто-нибудь знает, так ли это должно работать?