Autor Beitrag
flyhigh83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Di 30.11.10 16:17 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: 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).
ausblenden 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:
ausblenden C#-Quelltext
1:
GetDataBy(tr => tr.Wert.Equals("Wert1") || tr.Wert.Equals("Wert2"));					
Weiss nicht, ob es das ist, was Du meintest.
LG, Marko

Für diesen Beitrag haben gedankt: flyhigh83
flyhigh83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Mi 01.12.10 09:33 
Hi,

danke hat mir weitergeholfen. Hätte ich auch gleich draufkommen können.

ausblenden 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. :-)

ausblenden C#-Quelltext
1:
2:
//this.steVereinComboBox.DataSource = this.anbieterBindingSource;
this.steVereinComboBox.DataSource = this.anbieterTableAdapter.GetDataByVerein();


Das auskommentierte die normale BindingSource. Jetzt verwende ich meine neue Abfrage GetDataByVerein und es funktioniert.