Фильтрация коллекции внутри коллекции MVVM - PullRequest
2 голосов
/ 24 июня 2010

У меня есть список проектов dtos, которые содержат коллекцию задач.В моей ViewModel у меня есть ICollectionView для проектов, поэтому я могу фильтровать проекты, помеченные как выполненные, см. Код фильтра ниже.

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

Это отлично работает для проектов, но я также хочу отфильтровать выполненные задачи.Поскольку ProjectDTO включает Задачи (Список), я не могу обернуть задачи в ICollectionView, чтобы отфильтровать их в ViewModel.

Я не уверен, как лучше всего выполнять фильтрацию по задачам, и может кто-нибудь помочь, пожалуйста

1 Ответ

1 голос
/ 24 июня 2010

У каждой коллекции есть CollectionView по умолчанию, поддерживаемый WPF, и когда вы связываетесь с коллекцией, WPF фактически связывается с этим представлением.Вы можете получить ссылку на это представление, вызвав CollectionViewSource.GetDefaultView и установив для него фильтр:

CollectionViewSource.GetDefaultView(someList).Filter = somePredicate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...