【发布时间】:2018-05-13 14:33:09
【问题描述】:
当我的 DataSource 是 BindingSource 时,我试图过滤我的 DataGridView。 当我尝试更改 BindingSource 中的过滤器时,只有 BindingSource.Filter 值发生变化,但 DGV 看起来仍然相同。如何完成过滤我的 DGV?
BindingSource udalosti = new BindingSource();
//filling bindingsource by udalosti.Add()
eventDataGridView.DataSource = udalosti;
这是我的过滤功能
string filter="";
if (typeComboBox.Text != "")
{
filter = "Typ LIKE '" + typeComboBox.Text + "' AND ";
}
if (descriptionTextBox.Text != "")
{
filter += "Popis LIKE '%" + descriptionTextBox.Text + "%' AND ";
}
if (sourceTextBox.Text != "")
{
filter += "Zdroj LIKE '" + sourceTextBox.Text + "' AND ";
}
if (filter.Length > 0)
udalosti.Filter = filter.Substring(0, filter.Length - 5);
else
udalosti.Filter = filter;
eventDataGridView.ResetBindings();
这就是内容的样子
class Udalost
{
public string Typ { get; set; }
public string Popis { get; set; }
public string Zdroj { get; set; }
public DateTime Cas { get; set; }
}
【问题讨论】:
-
您的数据源是否支持 IBindingListView?如果没有,它就不能从 BindingSource 的过滤器功能中受益。
-
@HynekBernard 不,它说它没有。 BindingSource.Filter Property - 备注 摘录:“只有实现
IBindingListView接口的底层列表才支持过滤。”
标签: c# .net datagridview datasource