Почему CollectionView.CollectionChanged защищен? - PullRequest
6 голосов
/ 12 июня 2009

Я хочу отслеживать изменения в CollectionView, но событие CollectionChanged защищено. Как мне это сделать? Конечно, должен быть способ подписаться на это событие - элементы управления списком должны сделать это как-то.

Я могу привести SourceCollection к INotifyCollectionChanged и добавить туда событие, но это кажется излишне грязным.

Ответы [ 2 ]

5 голосов
/ 09 мая 2013

... элементы управления списком должны каким-то образом это делать.

Я могу привести SourceCollection к INotifyCollectionChanged и добавить туда событие, но это кажется излишне грязным.

На самом деле, именно так и поступают элементы управления списком. Это из исходного кода ItemsControl (найден через http://www.dotnetframework.org/):

((INotifyCollectionChanged)_items).CollectionChanged += new NotifyCollectionChangedEventHandler(OnItemCollectionChanged);

Возможно, вы должны представить свои CollectionViews как интерфейс, ICollectionView , который сам наследует INotifyCollectionChanged, а также предоставляет свойства CollectionView, такие как CurrentItem.

1 голос
/ 12 июня 2009

Почему вместо этого вы не используете ObservableCollection?

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