开发者

Filtering a collection inside a collection MVVM

I have a list of project dtos that contain a collection of tasks. 开发者_Go百科 On my ViewModel I have an ICollectionView for the projects so I can filter projects that are marked as done see below filter code.

    public void FilterDoneItems()
    {
        if (this.MarkDone)
        {
            ProjectsViewSource.Filter = new Predicate<object>(FilterDone);
        }
        else
        {
            ProjectsViewSource.Filter = null;
        }
    }

This works fine for projects but I also want to filter out the done tasks. As the ProjectDTO encompases the Tasks (List) I can't wrap the tasks in an ICollectionView to filter them in the ViewModel.

I am unsure how best to go about filtering on the tasks as well can anyone help please?


Every collection has a default CollectionView maintained by WPF, and when you bind to the collection WPF will actually bind to that view. You can get a reference to that view by calling CollectionViewSource.GetDefaultView and set the filter on that:

CollectionViewSource.GetDefaultView(someList).Filter = somePredicate;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜