Laden...

mehrere ComboBoxen abhängig von einander mit Elementen füllen

Erstellt von DariusR vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.462 Views
D
DariusR Themenstarter:in
34 Beiträge seit 2009
vor 9 Jahren
mehrere ComboBoxen abhängig von einander mit Elementen füllen

Hallo!

Ich suche eine Lösung für die folgende Aufgabe:

es gibt folgende CB: Postleitzahl, Ort, Strasse. Diese CBs.Items werden aus einer Datenbank gefüllt. So seit so gut. Einfach mit select die passenden Einträge aus der Datenbank holen und fertig.

Nun aber das, was das ganze interessant macht! Wenn ich eine Strasse aussuche, soll die CB Postleitzahl und Stadt automatisch mit den passenden Einträgen gefüllt werden. Wird eine Stadt ausgewählt, dann sollen die Postleitzahl und die Strasse automatisch gefüllt werden. Natürlich auch entsprechend für die Postleitzahl.

Natürlich kann man dies ganz kompliziert lösen, so das nach 3 Monaten man selber nicht mehr weiss, was man gemacht. Ganz zu schweigen vom debuggen!

Dies ist ein Aufgabenstellung, die häufig auftritt!
Ich suche dafür nicht unbedingt eine Lösung, viel mehr bin ich an einem Konzept/ Entwurf interessiert, den nicht nur ich sondern auch andere nutzen können!

Ich hoffe, dass viele mitdiskutieren! Auf eine gute Lösung!

Darius.

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo DariusR,

da es - wie du es selbst sagst - eine Standard-Aufgabe ist, findest du dazu auch (gute) Lösungen im Netz.

Bitte beachte daher [Hinweis] Wie poste ich richtig? Punkt 1.1. Ich lasse den Thread offen, damit du oder jemand, der einen Link parat hat, diesem posten kann. Eine inhaltliche Diskussion sollten wir uns sparen, um das Rad nicht nochmal neu zu erfinden.

herbivore

H
523 Beiträge seit 2008
vor 9 Jahren

Ich gehe mal davon aus, dass Du Windows-Forms verwendest:

Schau Dir das Event SelectedIndexChanged an. Damit kommst Du sehr leicht zur Lösung.

D
DariusR Themenstarter:in
34 Beiträge seit 2009
vor 9 Jahren

Hallo,

nach dem ich für diese Aufgabe keine Lösung im Netz finden konnte, die mir gefallen hätte, habe ich mir selbst etwas erstellt (wäre prima, wenn wir darüber diskutieren könnten, um so eine richtig gute Lösung zu finden!).

Jede cb (combobox) bekommt ein bool zugeordnet, der anzeigt, ob etwas gewählt wurde oder nicht (darüber kann man später entscheiden, ob der User mitten in die Auswahl gesprungen ist).
Das richtige event dafür ist "SelectionChangeComitted". Das "selectedIndexChanged" event wird auch ausgelöst, wenn cb.DataSource eingetragen wird. Habe es zuerst damit versucht und bei mir die föllige Verwirrung ausgelöst! 😃
Beide events feuern, bevor der Text in der cb steht! Soll heißen, cb.Text funktioniert nicht. Was funktioniert ist: cb.SelectedItem.ToString().
Ich habe dann das event meiner cb's auf eine Methode laufen lassen. Hier kann ich dann gesammelt alles bewerten und neu zuordnen.

So richtig toll wäre zum Beispiel eine Klasse, die von cb erbt. Dieser könnte man dann den bool als Eigenschaft mitgeben. Da gibt es bestimmt viele nette Dinge!

Hoffe, wir finden zusammen eine richtig tolles Ergebnis!

Gruß