Entwickler-Ecke
WinForms - Combobox Füllen mit GetDataBy()
flyhigh83 - Di 30.11.10 16:17
Titel: Combobox Füllen mit GetDataBy()
Hallo,
ich habe schon gesucht aber bisher nichts gefunden was mir weiterhelfen könnte.
Ich habe eine Combobox und eine DataTableAdapter.
Normal kann ich ja eine Table für die Daten der Combobox aussuchen und die Wertemember, ausgewählter Wert etc. auswählen. Klar die kann ich auch über Code der Combobox zuweisen.
Jetzt aber meine Frage.
Ich habe noch eine zusätzliche GetDataBy() Methode um den Tableadapter mit den Richtigen WErten gleich zu befüllen.
Wie schaffe ich es nur die GetDataBy() Werte in die Combobox zu füllen. Also wie kann ich einzelne Spalten der Tabelle dann dem Wertemember etc. zuweisen?
Oder gibt es eine andere möglichkeit indem ich über die WHERE Funktion des Tableadapter die Daten der orignal Tabelle Eingrenzen kann?
Trashkid2000 - Di 30.11.10 21:04
Hallo,
also, Du kannst Deiner
GetDataBy-Methode z.B. eine
Func<T, TResult> mitgeben. Dann könntest Du filtern. Dann sollte die Methodes aber auch was mit filtern heißen. Denn es werden beim Füllen halt alle Daten aus der Tabelle abgefragt (ausser, Du schraubst selber an der Fill-Methode rum).
C#-Quelltext
1: 2: 3: 4: 5:
| private void GetDataBy(Func<DataSet1.TestTableRow, bool> filter) { comboBox.DataSource = dataset.TestTable.Where<DataSet1.TestTableRow>(filter).ToList(); comboBox.DisplayMember = "Wert"; } |
Und der Aufruf der Methode dann so:
C#-Quelltext
1:
| GetDataBy(tr => tr.Wert.Equals("Wert1") || tr.Wert.Equals("Wert2")); |
Weiss nicht, ob es das ist, was Du meintest.
LG, Marko
flyhigh83 - Mi 01.12.10 09:33
Hi,
danke hat mir weitergeholfen. Hätte ich auch gleich draufkommen können.
C#-Quelltext
1: 2: 3:
| steVereinComboBox.DataSource = this.anbieterTableAdapter.GetDataByVerein(); steVereinComboBox.DisplayMember = "anbBezeichnung"; steVereinComboBox.ValueMember = "idAnbieter" |
die Auswahl funktioniert super. Allerdings hättest du vielleicht noch einen Tipp. Ich bin mir jetzt echt nicht sicher aber das geht sicherlich noch sauberer.
Weil ich jetzt der Combobox selbst die normalen DataSource etc. zugewiesen habe. Also die komplette Tabelle. Erst wenn die Combobox den Fokus erhält wird gefilter. Dies musste ich mache da ich es nicht besser weis. Weil ich über den Wert Selected.Value die Informationen auch angezeigt bekommen möchte ohne das ich extra den Fokus setze. Also in der Formbeschreibung ist ja genau dies alles definiert. Nur weis ich nicht wie ich die Funktion beziehungsweise gleich die rihctigen Werte anspreche?
Danke aber für deine Hilfe
Ergänzung:
Habe es hinbekommen. Ist ja mal einfach wenn man es weis. :-)
C#-Quelltext
1: 2:
| this.steVereinComboBox.DataSource = this.anbieterTableAdapter.GetDataByVerein(); |
Das auskommentierte die normale BindingSource. Jetzt verwende ich meine neue Abfrage GetDataByVerein und es funktioniert.
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!