Ich versuche, eine BindingSource mit einer BindingList als Datenquelle zu filtern. Ich habe versucht, BindingSource.Filter = 'Text Condition' Aber es hat nicht funktioniert, passiert nichts, die Daten auf dem Bildschirm bleibt gleich. Aber wenn ich ein DataSet als Datenquelle verwende, funktioniert es. Ist es möglich, eine Liste von Objekten mit der BindingSource.Filter-Eigenschaft zu filtern?DataGridView Eine BindingSource mit einer Objektliste als DataSource filtern
Ich habe die folgende Klasse:
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; }
}
Dies ist, wie ich es verwenden:
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'";
Dies ist nur ein Beispiel der Idee zu testen, ob ein eine Datenquelle wie das filtert . Ich werde das Wissen in einem neuen Projekt verwenden.
pd: Die Idee ist BindingSource.Filter zu verwenden, wenn es möglich ist.
Danke !!! Mit Ihren Informationen fand ich eine Implementierung von IBindingListView und es funktioniert. Hier ist der Link: http://blogs.msdn.com/b/winformsue/archive/2008/05/19/implementing-filtering-on-the-ibindinglistview.aspx –
Ich stieß auf diese paar Jahre und diese Lösung hat gut für mich funktioniert. Heute habe ich den gleichen Code nur mit einem kleinen Unterschied verwendet: zwei Datagridviews müssen dieselbe FilteredBindingList mit verschiedenen Filter-/Sortieroptionen anzeigen. irgendwelche Gedanken darüber, wie dies zu erreichen ist? – Afshin