开发者

Filtering a collection inside a collection MVVM

开发者 https://www.devze.com 2023-01-04 08:31 出处:网络
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 fi

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

精彩评论

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