我想监视对CollectionView的更改,但CollectionChanged事件受到保护.我该怎么做?当然必须有一种方式来订阅此事件 - 列表控件必须以某种方式执行此操作.
我可以将SourceCollection转换为INotifyCollectionChanged并在那里添加一个事件,但这似乎是不必要的混乱.
...列表控件必须以某种方式执行此操作。
我可以将SourceCollection强制转换为INotifyCollectionChanged并在其中添加一个事件,但这似乎不必要地混乱。
实际上,这正是列表控件执行此操作的方式。这来自ItemsControl的源代码(可通过http://www.dotnetframework.org/找到):
((INotifyCollectionChanged)_items).CollectionChanged += new NotifyCollectionChangedEventHandler(OnItemCollectionChanged);
Run Code Online (Sandbox Code Playgroud)
您可能打算将CollectionViews作为接口ICollectionView公开,该接口本身继承了INotifyCollectionChanged并提供了诸如CurrentItem之类的CollectionView属性。
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |