我有一个用户输入的过滤器列表,我想将它们应用到我的DataGridView
。将所有过滤器应用于DataGridView
的最佳方法是什么?我的ColumnFilters
列表基本上是一个字符串列表,分为:Column name, operand (=, >, < etc.)
和用户输入的值。
public void ApplyFilters(List<ColumnFilter> filters)
{
if (filters.Count > 0))
{
foreach (ColumnFilter filter in filters)
{
BindingSource bs = (BindingSource)dataGridView1.DataSource;
bs.Filter = string.Format("{0} {1} '{2}'", filter.ColumnName, filter.Operand, filter.Value);
dataGridView1.DataSource = bs;
}
}
}
答案 0 :(得分:2)
bindingsource Filter
支持AND
,因此过滤器可以与以下内容结合使用:
bs.Filter = string.Join(" AND ", filters.Select(filter=>string.Format("{0} {1} '{2}'", filter.ColumnName, filter.Operand, filter.Value).ToArray());
(注意:使用上述内容时不需要foreach)