我想監視對CollectionView的更改,但CollectionChanged事件受保護。我應該怎麼做?當然,必須有一種方法來訂閱這個事件 - 列表控件必須以某種方式做到這一點。爲什麼要保護CollectionView.CollectionChanged?
我可以投SourceCollection到INotifyCollectionChanged然後添加一個事件出現,但似乎unneccesarily凌亂。
我想監視對CollectionView的更改,但CollectionChanged事件受保護。我應該怎麼做?當然,必須有一種方法來訂閱這個事件 - 列表控件必須以某種方式做到這一點。爲什麼要保護CollectionView.CollectionChanged?
我可以投SourceCollection到INotifyCollectionChanged然後添加一個事件出現,但似乎unneccesarily凌亂。
...列表控件必須以某種方式做到這一點。
我可以將SourceCollection強制轉換爲INotifyCollectionChanged,並在那裏添加一個事件,但那 看起來無關緊要。
事實上,這就是列表控件究竟是如何做到這一點。這是自ItemsControl的源代碼(通過http://www.dotnetframework.org/找到):
((INotifyCollectionChanged)_items).CollectionChanged += new NotifyCollectionChangedEventHandler(OnItemCollectionChanged);
你可能意在使您的CollectionViews作爲接口,ICollectionView,這本身就繼承了INotifyCollectionChanged以及提供像CURRENTITEM的CollectionView性質。
嗯,顯然這是公衆取故意「隱藏」 ......我不知道到底爲什麼,但你想做什麼可能是他們想阻止確切的事情;) – 2009-06-11 23:26:44