Как отслеживать изменения в ItemsControl с помощью Silverlight?

У меня есть ItemsControl, привязанный к ObservableCollection. Когда наблюдаемая коллекция изменяется, у меня есть обработчик событий, который просматривает дочерние элементы ItemsControl. К сожалению, ItemsControl в то время еще не добавил новый элемент (что и понятно). Как я могу узнать, когда ItemsControl завершил добавление новых дочерних элементов управления?

Другими словами, если я использую ItemsControl для отображения списка текстовых полей, как я могу получить уведомление, когда новый элемент управления TextBox был добавлен к отображению?


person Jason Young    schedule 05.02.2009    source источник


Ответы (2)


Что ж, в итоге я начал копаться в элементе управления, чтобы найти ContentPresenter. Затем я подключился к событию LayoutUpdated, которое подсчитало детей, чтобы увидеть, изменилось ли оно.

Странное решение, но оно работает.

person Jason Young    schedule 05.02.2009

Если вы привязываете ObservableCollection к ItemsControl, который является типом коллекции, которую создают клиенты Silverlight WCF, вы можете прослушивать события, вызванные ObservableCollection.

Именно так Silverlight узнает, нужно ли повторно выполнять рендеринг. Вы можете работать с коллекцией независимо от пользовательского интерфейса, и пользовательский интерфейс работает нормально.

person BC.    schedule 05.02.2009