Auf der Suche nach dem richtigen Event

Eroli

Erfahrenes Mitglied
Hallo zusammen,

ich benutze zwei kombinierte ComboBoxes, damit meine User für einen Eintrag eine Kategorie auswählen und zu dieser ausgewählten Kategorie auch Unterkategorien angezeigt werden können.

Beide ComboBoxes sollen gleichzeitig auch dazu dienen neue (Unter)Kategorien zu erstellen, indem der User einfach keinen Eintrag auswählt, sondern etwas Neues in die Box reinschreibt.

Leider fällt es mir relativ schwer ein passendes Event zum Nachladen der evtl. bereits vorhandenen Unterkategorien zu finden.

Bisher hatte ich die Kategorien erst beim Enter-Event der Unterkategorie-ComboBox geladen. Allerdings wird dieses Event bei mir immer zweimal geworfen, was bislang zu leichten Problemen führte.

Nun überlege ich, ob ich die Items nicht einfach schon laden soll, wenn man eine Kategorie in der Box auswählt. Dazu würde ich das SelectionChangeCommitted-Event nehmen, allerdings funktioniert dies nicht, wenn der User seine Kategorie einfach ausschreibt anstatt sie aus der Liste zu wählen und dies führt dann zu doppelten Einträgen...
Das Text-Changed-Event feuert leider bei jedem geändertem Buchstaben, was ja eindeutig zu oft ist...

Ich hoffe ihr versteht so in etwa was mein Problem ist und könnt mir vielleicht die ein oder andere hilfreiche Idee schenken ;-)

Ciao,
Eroli
 
Hi Eroli,

wie wäre es denn, wenn du in das Leave-Event von deiner ersten ComboBox die Logik schreibst, welche dann dementsprechend die 2. ComboBox füllt.

Ich habe das gerade mal bei mir ein bisschen getestet und in meinem Fall hat es das von die gewünschte Handling gezeigt.

Grüße Hale
 
Das Text-Changed-Event feuert leider bei jedem geändertem Buchstaben, was ja eindeutig zu oft ist...
Warum? Genau dieses Event würde ich dir empfehlen! Allerdings solltest du das Nachladen in einem Hintergrund-Thread ausführen, damit die grafische Oberfläche weiterhin bedienbar ist (ich weiß ja nicht, wie lange das Laden i.d.R. dauert). Oder vielleicht zeitverzögert: du könntest im TextChanged-Event einen Timer neustarten, der nach 2 Sekunden dann die anderen Kategorien nachlädt. Das heißt, es wird erst geladen, wenn der Benutzer 2 Sekunden lang keine Taste gedrückt hat.
 
Zurück