1

我有一个出现在 2 个单独列表中的集合。一个列表应显示所有项目(未过滤),第二个列表应显示符合某个标准的项目(已过滤)。

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;
};

我该怎么做?

4

1 回答 1

3

不要更改默认视图,而是显式创建两个单独的 实例ListCollectionView,过滤一个,并将每个列表绑定到相关视图。

无论如何,一个ItemsControl(或派生的)总是在显示之前将其Items集合包装在一个中- 如果您自己执行此步骤,那么您可以更好地控制显示的内容。CollectionView

于 2012-11-15T11:16:40.323 回答