我经常需要过滤已经包含项目的ObservableCollection。哪种方法更好?
// Assigning the filtered result directly
FilteredObservableCol = FilteredCollectionCopy.Where(i=> i.Age > 25).ToObservableCollection();
或
// Clearing the collection first
FilteredObservableCol.Clear();
FilteredObservableCol = FilteredCollectionCopy.Where(i=> i.Age > 25).ToObservableCollection();
答案 0 :(得分:2)
您可以使用CollectionViewSources
而不是ObservableCollection来绑定。在那里你可以应用过滤。
ICollectionView MyCollection { get; private set; }
public void LoadData()
{
var myObservable = //... load/create list
MyCollection = CollectionViewSource.GetDefaultView(myObservable);
MyCollection.Filter = item => ((TypeOfItem)item).Name = "bob";
}