最初隐藏ListView中的元素(使用ICollectionView和ObservableCollection)

时间:2011-02-12 11:02:20

标签: c# wpf listview observablecollection icollectionview

我使用的是一个绑定到ICollectionView的ListView(ListCollectionView - > ObservableCollection) 在加载包含数据的文件时,集合会被填充。 每个数据项都有一个布尔标志,表示它是否必须显示在列表视图中或必须隐藏。

目前我以丑陋的方式做到了这一点。我首先用数据填充集合(listview)。 用户可以看到这一点。 填写之后,我启动一个例程,过滤(ICollectionView.Filter)不匹配的项目。 列表视图项目计数在那一刻缩小。

有没有更好的方法来实现这个?

1 个答案:

答案 0 :(得分:3)

只需在开始填充集合之前设置过滤器

ObservableCollection<Foo> collection = new ObservableCollection<Foo>();
ICollectionView view = CollectionViewSource.GetDefaultView();
view.Filter = YourFilterMethod;
// Fill the collection
collection.Add(...);