筛选条件 OR 而不是 AND C# WPF

Filter Criteria OR Instead of AND C# WPF

我目前正在根据一组复选框的选择来过滤 DataGrid。条件被添加到条件列表中,DataGrid 绑定到的 ICollectionView 被适当地过滤。

如果我想在 'AND' 基础上进行过滤,这可以正常工作。每个工作都有一个与之关联的员工,但目前过滤器通过说 show jobs where job.employee = employee 1 AND job.employee = employee2 来工作。这是目前的代码,它将像这样过滤;

        criteria.Clear();

        if (yourJobsCheckBox.IsChecked == true)
        {
            criteria.Add(new Predicate<JobModel>(x => x.ITName == yourJobsCheckBox.Tag.ToString()));
        }

        if (danJobsCheckBox.IsChecked == true)
        {
            criteria.Add(new Predicate<JobModel>(x => x.ITName == danJobsCheckBox.Tag.ToString()));
        }

        if (emilyJobsCheckBox.IsChecked == true)
        {
            criteria.Add(new Predicate<JobModel>(x => x.ITName == emilyJobsCheckBox.Tag.ToString()));
        }

        if (adamJobsCheckBox.IsChecked == true)
        {
            criteria.Add(new Predicate<JobModel>(x => x.ITName == adamJobsCheckBox.Tag.ToString()));
        }

        JobModel job = o as JobModel;
        bool isIn = true;
        if (criteria.Count() == 0)
            return isIn;
        isIn = criteria.TrueForAll(x => x(job));
        return isIn;

目前正在按ITName = tag1 AND ITName = tag2等职位过滤。等等。一份工作永远不会有超过一名员工分配给它,因此一旦用户点击多个复选框,就不可避免地不会显示任何工作。

如何更改我的过滤器,使其改为在 'OR' 基础上进行过滤?例如show jobs where job.employee = employee 1 OR job.employee = employee 2

你试过了吗"Any"? "Any" 收到谓词。它确定集合中的任何元素是否符合特定条件。