Próbuję filtrować BindingSource z BindingList jako Datasource. Próbowałem BindingSource.Filter = 'Text Condition' Ale to nie działało, nic się nie dzieje, dane na ekranie pozostają takie same. Ale jeśli używam DataSet jako źródła danych, które działa. Czy można filtrować listę obiektów za pomocą właściwości BindingSource.Filter?DataGridView Filtrowanie źródła BindingSource z listą obiektów jako DataSource
Mam następujące klasy:
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; }
}
to jak go używać:
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'";
Jest to tylko przykład idea jest sprawdzenie, czy można filtrować źródło danych takiego . Wykorzystam wiedzę w nowym projekcie.
pd: Pomysł polega na umożliwieniu użycia BindingSource.Filter, jeśli jest to możliwe.
Dzięki! Z twoimi informacjami znalazłem implementację IBindingListView i to działa. Oto link: http://blogs.msdn.com/b/winformsue/archive/2008/05/19/implementing-filtering-on-the-ibindinglistview.aspx –
Natknąłem się na to kilka lat temu i to rozwiązanie pracował dla mnie dobrze. Dzisiaj używałem tego samego kodu z odrobiną różnicy: potrzeba dwóch datagridviews wyświetlających tę samą listę FilteredBindingList z różnymi opcjami filtrowania/sortowania. wszelkie myśli o tym, jak to osiągnąć? – Afshin