如何使用谓词过滤DataGridView行?

时间:2010-07-05 00:07:59

标签: c#

我有一个List<T>绑定到DataGridView,如下所示:

BindingSource bs = new BindingSource();
bs.DataSource = list;
myDataGridView.DataSource = bs;

我想过滤使用谓词显示的行。我如何实现这一目标?

非常感谢

1 个答案:

答案 0 :(得分:0)

简单的解决方案如下:

Func<T, bool> predicate = ...; // Func<T, bool> or Predicate<T>

BindingSource bs = new BindingSource();
bs.DataSource = list.Where(x => predicate(x));
myDataGridView.DataSource = bs;

如果您的谓词发生更改,则刷新数据源或仅使用新谓词重新分配它。