Wpf 如何在一个集合上定义两个单独的筛选器?
我有一个收藏出现在两个单独的列表中。一个列表应显示所有项目(未过滤),第二个列表应显示符合特定标准(过滤)的项目 2个列表的ItemsSource属性绑定到ViewModel中的2个属性 我试图为筛选列表设置DefaultView,但它会影响两个列表Wpf 如何在一个集合上定义两个单独的筛选器?,wpf,data-binding,mvvm,Wpf,Data Binding,Mvvm,我有一个收藏出现在两个单独的列表中。一个列表应显示所有项目(未过滤),第二个列表应显示符合特定标准(过滤)的项目 2个列表的ItemsSource属性绑定到ViewModel中的2个属性 我试图为筛选列表设置DefaultView,但它会影响两个列表 ListCollectionView view = (ListCollectionView) CollectionViewSource.GetDefaultView(_manager.Modules); view.Filter = delegate
ListCollectionView view = (ListCollectionView) CollectionViewSource.GetDefaultView(_manager.Modules);
view.Filter = delegate(object item)
{
Model.BaseModule bm = item as Model.BaseModule;
if (bm != null)
{
return bm is TemplatedUnitOfTest && ((TemplatedUnitOfTest)bm).TemplateGuid == _uot.Header.Id;
}
return false;
};
如何执行此操作?不要更改默认视图,而是显式创建
ListCollectionView
的两个单独实例,筛选一个,并将每个列表绑定到相关视图
ItemsControl
(或派生)始终会在显示之前将其项
集合包装在集合视图
中-如果您自己执行此步骤,则可以更好地控制所显示的内容