C# c gridview多重过滤器

C# c gridview多重过滤器,c#,winforms,C#,Winforms,我可以在gridview中创建多个过滤器吗?到目前为止,对于每种过滤,我有三种不同的方法。我希望能做这样的事情。首先从将显示的combobox值中选择,然后从这个过滤列表中,我希望能够使用textbox搜索其他内容 private void button9_Click(object sender, EventArgs e) { var result = list3.Where(Srodek => Srodek.Srodek.ID.Device == textBox2.Text).T

我可以在gridview中创建多个过滤器吗?到目前为止,对于每种过滤,我有三种不同的方法。我希望能做这样的事情。首先从将显示的combobox值中选择,然后从这个过滤列表中,我希望能够使用textbox搜索其他内容

private void button9_Click(object sender, EventArgs e)
{
    var result = list3.Where(Srodek => Srodek.Srodek.ID.Device == textBox2.Text).ToList();
    dataGridView4.DataSource = result;
}

private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
    var result = list3.Where(Srodek => Srodek.Srodek.category1 == comboBox1.SelectedItem.ToString()).ToList();
    dataGridView4.DataSource = result;
}

现在,当我从combobox中选择某个值时,它会在gridview中显示我想要的内容,但稍后当我在textbox中插入一些内容并单击按钮时,它会过滤整个列表,而不是combobox已经过滤过的列表。如何实现它?

创建一个全局属性,该属性将承载您的列表,以便每次对列表执行查询时,您都会对已筛选的最新列表执行查询。

创建一个全局属性,该属性将承载您的列表,以便每次对列表执行查询时,您都会对最新列表执行查询已经过滤过的。

您没有更改过滤器的来源,因此每次都在同一组上进行过滤。一种选择是使用原始数据集和过滤数据集,然后在过滤原始数据集时,将结果保存在过滤集。

您没有更改过滤源,因此每次都在同一集上过滤。一种选择是使用原始数据集和过滤数据集,然后在过滤原始数据集时,将结果保存在过滤集中。

我假设列表3中的元素类型为T:


我假设列表3中的元素类型是T:

尝试对两个事件调用FilterDataGrid:

    private void button9_Click(object sender, EventArgs e)
    {
        FilterDataGrid();
    }

    private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
    {
        FilterDataGrid();
    }

    private void FilterDataGrid()
    {
        var _text = Convert.ToString(textBox2.Text);
        var _comboText = ! string.IsNullOrEmpty(comboBox1.Text) ? Convert.ToString(comboBox1.SelectedItem) : string.Empty;
        var result = list3.Where(Srodek => Srodek.Srodek.category1 == _comboText || Srodek.Srodek.ID.Device == _text).ToList();
        //
        dataGridView4.DataSource = result;
    }
希望这对您有所帮助。

尝试FilterDataGrid调用这两个事件:

    private void button9_Click(object sender, EventArgs e)
    {
        FilterDataGrid();
    }

    private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
    {
        FilterDataGrid();
    }

    private void FilterDataGrid()
    {
        var _text = Convert.ToString(textBox2.Text);
        var _comboText = ! string.IsNullOrEmpty(comboBox1.Text) ? Convert.ToString(comboBox1.SelectedItem) : string.Empty;
        var result = list3.Where(Srodek => Srodek.Srodek.category1 == _comboText || Srodek.Srodek.ID.Device == _text).ToList();
        //
        dataGridView4.DataSource = result;
    }

希望这有助于u.

制作一个绑定到数据网格的方法FilteredResult。在这个方法中,您可以查看多个过滤器list3中元素的类型是什么?制作一个绑定到datagrid的方法FilteredResult。在这个方法中,您可以查看多个过滤器list3中元素的类型是什么?