Entwickler-Ecke

WinForms - In Comboboxen Enums verschieden zuordnen


sheroco - Mi 15.12.10 21:40
Titel: In Comboboxen Enums verschieden zuordnen
Hallo.

Ich hab 2 Comboboxen in die jeweils 2 Enums eingelesen werden.

In der Combobox1 stehen a,b,c drin.
In der Combobox2 stehen e,f,g drin.

Wenn ich jetzt a von Combobox1 auswähle, soll er mir in der Combobox2 nur mehr e,f als Auswahl geben.

Wie mache ich das am besten?

Mfg


Yogu - Mi 15.12.10 22:08

Wenn der Benutzer einen Eintrag in der einen Comobox auswählt, musst du die zweite neu einlesen und dabei die Einschränkung beachten. Wie genau übernimmst du die Enums denn in die Combobox?


sheroco - Mi 15.12.10 22:27

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn der Benutzer einen Eintrag in der einen Comobox auswählt, musst du die zweite neu einlesen und dabei die Einschränkung beachten....


genau da ist mein problem, wie ich ihm diese einschränkungen sage


user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
...Wie genau übernimmst du die Enums denn in die Combobox?


ComboBox.DataSource = Enum.GetValues();

Edit:

So hab jetzt eine Lösung gefunden:

-)über ComboBox SelectedIndex.Changed
-)davor lösch ich noch die Einträge von der Combobox mit .Clear()
-)dann mach ich eine if verweigung und füg die werte mit ComboBox.Items.Add(EnumName.Eintrag) hinzu.

Naja vielleicht weiß jemand von euch noch eine bessere Lösung :)

Mfg


Th69 - Do 16.12.10 10:02

Hallo sheroco,

deine Vorgehensweise mittels SelectedIndexChanged-Ereignis und explizitem Füllen der 2. Combobox ist genau so der richtige Weg.
Je nachdem wie die Abhängigkeiten zwischen den Comboboxen sind, kann man das natürlich programmtechnisch etwas optimieren, indem man z.B. die verschiedenen Listen schon statisch erzeugt (sofern das möglich ist) und im SelectedIndexChanged-Ereignis dann nur noch mittels "combobox2.DataSource = listX" zuweist.

Aus deinem Eingangsbeitrag konnte man nicht heraussehen, warum jetzt ausgerechnet bei 'a', nur noch 'e' und 'f' angezeigt werden sollen und was dann bei Auswahl von 'b' oder 'c' passieren soll (da wäre ein konkretes Beispiel evtl. besser gewesen -).


sheroco - Fr 17.12.10 09:11

Bei der Auswahl wäre es nur um eine Zuweisung gegangen.
In der Combobox kann man z.B einen Beruf auswählen und je nach Beruf sollen dann z.B verschiedene Tätigkeiten in der 2.Combobox auszuwählen sein.
Und diese Tätigkeiten sollten im Code halt in einer Enum stehen.
Dann wird das ganze nur noch in eine Liste geladen, die das ganze mit weiteren Daten ausgibt, nur das war nicht dann kein Problem mehr :)

Danke für die Antworten :)