我正在尝试使用 BindingList 作为数据源来过滤 BindingSource。我试过 BindingSource.Filter = 'Text Condition' 但它没有用,没有任何反应,屏幕上的数据保持不变。但是,如果我使用 DataSet 作为数据源,它就可以工作。是否可以使用 BindingSource.Filter 属性过滤对象列表?
我有以下课程:
class Person
{
public String Nombre { get; set; }
public String Apellido { get; set; }
public int DNI { get; set; }
public int Edad { get; set; }
public Decimal Tamano { get; set; }
}
这就是我使用它的方式:
BindingList<Person> personas = new BindingList<Person> {
new Person{ Apellido = "App1", DNI = 3011, Edad = 20, Nombre ="Name1", Tamano = new decimal(1.7)}
,new Person{ Apellido = "App2", DNI = 1520, Edad = 30, Nombre ="Name2", Tamano = new decimal(1.5)}
,new Person{ Apellido = "App3", DNI = 5654, Edad = 21, Nombre ="Name3", Tamano = new decimal(1.6)}
,new Person{ Apellido = "App4", DNI = 778, Edad = 40, Nombre ="Name4", Tamano = new decimal(1.68)}
};
BindingSource bs = new BindingSource();
bs.DataSource = personas;
grid.DataSource = bs;
bs.Filter = "Apellido like 'App1'";
这只是一个例子,这个想法是为了测试是否可以过滤这样的数据源。我将在一个新项目中使用这些知识。
pd:我们的想法是尽可能使用 BindingSource.Filter。