Как правильно создать свойство зависимостей, привязываемое к наблюдаемой коллекции? - PullRequest
0 голосов
/ 04 октября 2010

Мне нужно создать свойство зависимости на пользовательском элементе управления.Проблема в том, что propertyChangedCallback не вызывается при изменении коллекции.Как я должен правильно справиться с этим сценарием?

Я боюсь утечек памяти, вызванных простым перехватом события к событию CollectionChanged во время первоначального изменения свойства (когда наблюдаемый набор назначен свойству зависимости).

Другими словами, янеобходимо создать другое свойство, например ItemsControl.ItemsSource.

Я посмотрел на источник ItemsControl.ItemsSource, используя Reflector.Внутренне он использует WeakCollectionChangedListener, который является внутренним классом.Я, вероятно, мог бы скопировать его источник и использовать его, но я считаю, что должно быть другое (лучшее) решение.

1 Ответ

0 голосов
/ 05 октября 2010

В блоге Delay есть хорошая подробная статья о реализации шаблона WeakEvent в Silverlight для этого точного сценария (изменение источника коллекции, реализующего INotifyCollectionChanged).

Он также предоставляет код для реализации WeakEventListener.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...