2009-06-11 76 views
5

我想監視對CollectionView的更改,但CollectionChanged事件受保護。我應該怎麼做?當然,必須有一種方法來訂閱這個事件 - 列表控件必須以某種方式做到這一點。爲什麼要保護CollectionView.CollectionChanged?

我可以投SourceCollection到INotifyCollectionChanged然後添加一個事件出現,但似乎unneccesarily凌亂。

+0

嗯,顯然這是公衆取故意「隱藏」 ......我不知道到底爲什麼,但你想做什麼可能是他們想阻止確切的事情;) – 2009-06-11 23:26:44

回答

1

爲什麼你不使用ObservableCollection?

+2

因爲我過濾集合。 – Grokys 2009-06-11 23:49:11

3

...列表控件必須以某種方式做到這一點。

我可以將SourceCollection強制轉換爲INotifyCollectionChanged,並在那裏添加一個事件,但那 看起來無關緊要。

事實上,這就是列表控件究竟是如何做到這一點。這是自ItemsControl的源代碼(通過http://www.dotnetframework.org/找到):

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

你可能意在使您的CollectionViews作爲接口,ICollectionView,這本身就繼承了INotifyCollectionChanged以及提供像CURRENTITEM的CollectionView性質。

相關問題