Wpf 如何在一个集合上定义两个单独的筛选器?

Wpf 如何在一个集合上定义两个单独的筛选器?,wpf,data-binding,mvvm,Wpf,Data Binding,Mvvm,我有一个收藏出现在两个单独的列表中。一个列表应显示所有项目(未过滤),第二个列表应显示符合特定标准(过滤)的项目 2个列表的ItemsSource属性绑定到ViewModel中的2个属性 我试图为筛选列表设置DefaultView,但它会影响两个列表 ListCollectionView view = (ListCollectionView) CollectionViewSource.GetDefaultView(_manager.Modules); view.Filter = delegate

我有一个收藏出现在两个单独的列表中。一个列表应显示所有项目(未过滤),第二个列表应显示符合特定标准(过滤)的项目

2个列表的ItemsSource属性绑定到ViewModel中的2个属性

我试图为筛选列表设置DefaultView,但它会影响两个列表

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
(或派生)始终会在显示之前将其
集合包装在
集合视图
中-如果您自己执行此步骤,则可以更好地控制所显示的内容