2009-06-11 15 views
5

CollectionViewの変更を監視したいが、CollectionChangedイベントが保護されている。私はこれをどのようにするべきですか?確かにこのイベントに登録する方法がなければなりません。リストコントロールは何とかこれを行う必要があります。なぜCollectionView.CollectionChangedが保護されていますか?

私はSourceCollectionをINotifyCollectionChangedにキャストしてそこにイベントを追加することができますが、これは不必要に乱雑です。

+0

まあ、明らかにそれは公共のアクセスから意図的に隠されていた...私はなぜ正確にはわからないが、あなたがやろうとしていることは恐らく彼らが防止したいと思った正確なものである;) –

答えて

1

代わりにObservableCollectionを使用していないのはなぜですか?

+2

私はフィルタリングしているコレクション。 – Grokys

+1

...そして、CollectionViewが意味を成すようにCurrentItem機能が必要です。 – Grokys

3

...リストコントロールは何とかこれを行う必要があります。

SourceCollectionをINotifyCollectionChangedにキャストしてそこにイベントを追加できますが、 は不必要に乱雑です。

実際、これはリストコントロールの機能とまったく同じです。おそらく、インターフェイスとしてごCollectionViewsを公開することを意図している

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

ICollectionViewに、自身がCurrentItemに似CollectionView特性を提供だけでなく、INotifyCollectionChanged継承します。これは(http://www.dotnetframework.org/経由で見つかった)のItemsControlのソースコードからです。

関連する問題