Laden...

WPF ComboBox: Selektion anhand Tastatureingabe?

Erstellt von MillionsterNutzer vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.535 Views
M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 10 Jahren
WPF ComboBox: Selektion anhand Tastatureingabe?

Hallo zusammen,

ich habe eine etwas ungewöhliche Anforderung für eine Combobox:
Die besagte ComboBox ist nicht editierbar dient also lediglich zur Selektion von Werten. Angeziegt werden in der dieser Box Artikel und zwar in Form von "Artikelnr - Artikelname". Als Beispiel wäre die folgende Liste denkbar:

101 - Milch
102 - Mehl
103 - Butter
104 - Salz
105 - Safran
...

Nun kann der Benutzer ja standardmäßig das 'Salz' auswählen indem er die '104' auf der Tastatur eintippt. Allerdings würde ich dem Benutzer gerne auch erlauben durch eintippen von 'Salz' das gewünschte Item selektiert zu bekommen.
Es soll kein Filter ausgefürhrt werden - lediglich eine Selektion.

Ich will das Rad nicht unnötig neu erfinden, allerdings habe ich im Netz nichts passendes gefunden...

Hatte jemand von euch schon mal eine ähnliche Anforderung und kann mir eine gute Herangehensweise aufzeigen?

Viele Grüße

Ralf

P
660 Beiträge seit 2008
vor 10 Jahren

Hallo,

Du kannst den DropDown-Style der ComboBox überschreiben und nur die Namen darstellen

Siehe z. B. hier:
Different ComboBox ItemTemplate for dropdown

MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden! *"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht." *"Ignorance simplifies ANY problem." *"Stoppt die Piraterie der Musikindustrie"

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 10 Jahren

Hi ProGamer,

das stimmt dann könnte der nutzer aber nicht mehr die 104 eintippen. Beide Eingaben sollten zum gleichen Ergebnis führen.

VG

Ralf

P
660 Beiträge seit 2008
vor 10 Jahren

Also ich wüsste jetzt nicht wie dein vorhaben ohne Filter lösbar sein sollte 😕

WPF Combobox with auto-complete/auto-filter?

MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden! *"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht." *"Ignorance simplifies ANY problem." *"Stoppt die Piraterie der Musikindustrie"

T
461 Beiträge seit 2013
vor 10 Jahren

Du könntest den Inhalt selbst durchlaufen und mit einfachen String.Contains das richtige Element anzeigen.

Oder aber du baust den Inhalt der ComboBox.Items so auf, daß jeder suchbare Text in einen eigenem TextBlock steckt, so sind die Texte getrennt und kannst diese oder mehrere Elemente in einem Item nach deiner Vorstellung nach auswählen.

Ist natürlich etwas mehr Arbeit...

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄