2

我们有多个基于同一个集合的过滤器。即我们以多种方式展示同一个集合。我想做的是在属性更改时要求所有 CollectionViews 刷新(因为只有在从集合中添加/删除项目时,集合视图才会重新过滤)。有没有办法找到与给定集合关联的所有集合视图。集合视图和集合之间是否存在双向链接,或者确定此链接的方法。

PS我不认为答案是

ICollectionView coll = CollectionViewSource.GetDefaultView(Collection);

因为这将为我提供集合的默认视图,而不是与集合关联的所有 ICollectionView。

4

1 回答 1

0

如果你的集合是 ObservableCollection,你可以做一个 ResettableObservableCollection。

public class ResettableObservablecollection<T>: ObservableCollection<T>
{
   //copy desired ctors

   public void ForceReset()
   {
       OnCollectionChanged(new System.Collections.Specialized.NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction.Reset));
   }
}

生成的 ICollectionView 将监视并自行刷新。

于 2010-02-05T16:01:16.780 回答