Поиск всех ICollectionView, прикрепленных к коллекции - PullRequest
2 голосов
/ 04 февраля 2010

У нас есть несколько фильтров на основе одной коллекции. то есть мы показываем одну и ту же коллекцию разными способами. То, что я хотел бы сделать, это попросить обновить все CollectionViews при изменении свойства (так как представление коллекции будет перефильтровываться только при добавлении / удалении элементов из коллекции). Есть ли способ найти все collectionViews, связанные с данной коллекцией. Существует ли двусторонняя связь между представлением коллекции и коллекцией или способ определения этой ссылки.

P.S. Я не думаю, что ответ

ICollectionView coll = CollectionViewSource.GetDefaultView(Collection);

, поскольку это даст мне представление по умолчанию для коллекции, а не для всех представлений ICollectionView, связанных с коллекцией.

1 Ответ

0 голосов
/ 05 февраля 2010

Если ваша коллекция представляет собой 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 будет следить за этим и обновлять себя.

...