Autor Beitrag
BlackMatrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 08.04.12 16:08 
Hey.

Ich weiß nicht so recht wo ich ansetzen soll. Ich habe eine BindingList, die IBindingListView und IRaiseItemChangedEvents implementiert und ich möchte auf meiner WinForm eine ComboBox und ein DGV haben. Mittels ComboBox möchte ich den Inhalt des DGVs filtern. Es soll niemals möglich sein, alle Einträge in meinem DGV zu sehen. Meine ComboBox soll immer alle Auswahlmöglichkeiten halten und das DGV nur die gefilterten Werte.

Wie realisiere ich das am Besten?

Liebe Grüße
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 08.04.12 20:49 
Hallo BlackMatrix,

unter dem Stichwort BindingSource.Filter habe ich heute erst diesen Beitrag verfasst: www.c-sharp-forum.de....php?p=661318#661318

Ob nun zwei DGVs oder eine ComboBox und ein DGV sollte ja nur eine kleine Änderung bedeuten...
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 08.04.12 21:57 
Ich danke dir, aber es handelt sich ja bei mir nicht um ein DataSet, sondern um eine Liste, die die Filterfunktionalität implementiert. Rufe ich nun den Filter auf, wird die zugrunde liegende Liste gefiltert und die originale Liste als privater Member gespeichert. Und das für beide Controls. Die BindingSource implementiert ja die Filterfunktionalität nicht, sie leitet sie nur an meine Liste weiter. D.h. nach dem Aufruf des Filters sind beide BindingSources mit den selben, gefilterten Elementen bestückt.
Das möchte ich aber nicht, ich möchte immer die vollständige Liste in der ComboBox haben und die Filterung im DGV.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 09.04.12 11:24 
Hallo BlackMatrix,

dann mußt du natürlich bei dir auch zwei verschiedene Listen (je Control eins) erzeugen.
Da die ComboBox bei dir aber - laut deiner Beschreibung - immer die vollständige Liste anzeigen soll, benötigst du doch hier gar keine BindingList, sondern kannst einfach die originale Liste anzeigen (und nur bei dem DGV benutzt du dann die BindingList).
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Di 10.04.12 18:00 
Dank dir.

Verstanden hatte ich das schon, ich wusste nur irgendwie nicht wie man es OO-konform umsetzt. Das ganze Problem hat sich aber nun in Luft aufgelöst, da ich mein Konzept der Klasse noch einmal überarbeitet habe und dabei der nette Nebeneffekt entstanden ist, dass ich 2 verschiedene gebundene Elemente habe und diese in einer seperaten Klasse zusammenführe. Es vollständig zu erklären würde jetzt den Rahmen sprengen.

Vielen Dank.

Edit:

Ah doch eine Frage hätte ich dazu noch. Und zwar stellt ja meine ComboBox den Filter für das DGV dar. Wie genau sollte ich jetzt den Filter aktualisieren, wenn über die Menüs ein neues Element hinzugefügt wurde und dieses nur im DGV erscheinen soll, wenn es dem in der Combobox selektierten Element gleicht? Über irgendein Ereignis?