Исходя из некоторых пользовательских настроек безопасности, я изменяю дочерние элементы управления окна только на чтение и отключаю.Для этого я запускаю дочерние элементы управления при загрузке окна.
Это работает просто отлично.На 99% идеально.
В моем окне у меня есть ItemsControl, содержимое которого основано на ComboBox.Измените ComboBox, дочерние элементы управления ItemsControl снова привязаны к данным.Но тогда безопасность (только чтение / отключено) больше не соответствует действительности.
Прежде чем перейти к решению, я знаю, что смогу обработать событие ComboBox Change;но у меня есть много таких блоков, и я не могу применить универсальное решение на уровне окна (думаю: база), независимо от того, что мои разработчики добавляют в окно / форму.
Мой вопрос (извините за долгоВвод), как я могу определить, когда новый дочерний элемент добавляется в окно из-за некоторой динамической активности, например привязки данных?Есть ли событие NewChildAdded?Есть ли событие DataBindingJustChangedThings?
Должно быть что-то.
Если ваше решение включает таймер, вам не нужно отвечать.Мои формы слишком сложны, чтобы справиться с этой дополнительной нагрузкой - и задержка между тиками слишком реальна из-за проблем безопасности.
Вы можете подумать, просто сделайте внешний контейнер доступным только для чтения или отключенным.Но это негативно влияет на такие вещи, как расширители, многострочные текстовые поля и списки.Такой подход не является достаточно зернистым.Конечно, именно здесь мы начали итерации назад.
Если ваше решение включает стиль, вам нужно указать, как я могу переопределить ваш подход для каждого элемента управления.Некоторые элементы управления (например, флажок) нельзя отключить, поскольку они имеют назначение в макете пользовательского интерфейса.
Извините за ограничения, но я планирую использовать решение в производстве.
Спасибо.