Entwickler-Ecke
Basistechnologien - List<T> filtern mit lambda expression
daeve - Sa 10.12.11 16:18
Titel: List<T> filtern mit lambda expression
Hallo zusammen
ich habe eine List die ich mit einer BindingSource mit einem DGV verbunden habe.
Jetzt sollen Daten gefiltert werden können, das filtern funktioniert soweit aber wenn ich dann wärend dem
Filtern Daten bearbeite im DGV, kann ich diese nicht abspeichern, beziehungsweise wird die List nicht aktualisiert.
so lade ich das DGV
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void FillDataGridView() { bs.DataSource = BookList; dgvBook.DataSource = bs; } |
so filtere ich die Daten:
C#-Quelltext
1:
| bs.DataSource = BookList.Where(x => x.Price > 10).ToList(); |
und die BookList wird so nicht mehr aktualisiert.
wie könnte ich das lösen ?
Ralf Jansen - Sa 10.12.11 18:34
| Zitat: |
| und die BookList wird so nicht mehr aktualisiert. |
Weil du BookList nicht an das DataGridView gebunden hast sondern die Liste die aus ToList() rauskommt und diese wird sicherlich aktualisiert.
Es gibt mehrere Möglichkeiten das zu lösen zum Beispiel
1. BookList binden und das Filtern über die BindingSource lösen der Listentyp von BookList muss dann Filtern unterstützen (Stichwort IBindingListView Interface)
2. So wie bisher aber die tatsächlich gebunden Liste merken und nach dem Bearbeiten diese Liste in BookList zurückmergen.
3. ....
daeve - Sa 10.12.11 20:49
okey, danke !
ich habe das ganze jetzt mit einer DataTable gelöst.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!