Wie wähle ich einen Gegenstand aus, indem ich einen Tastatur-Buchstaben in der WPF-Combobox eintippe?
Ich habe eine WPF - ComboBox
und ich will gehen, um Elemente, die mit beginnen (z.B.) "e" in der ComboBox
geben, wenn ich den Brief. Wie?
Meiner XAML-code:
<ComboBox ItemsSource="{Binding Roles}" SelectedValuePath="Id"
ItemTemplate="{StaticResource ComboBoxDisplayName}"
SelectedItem="{Binding SelectedRole}"
Width="150"/>
InformationsquelleAutor der Frage NetSide | 2010-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
EDIT: ich vermute, Sie haben eine
ItemTemplate
dass sieht ein wenig aus wie diese:Wenn Sie möchten, um die Suche auf Foo, dann versuchen Sie...
Standardmäßig eine
ComboBox
hat eine Art AutoVervollständigen, findet übereinstimmungen basierend auf den ersten Brief - vorausgesetzt, Ihre Quelle ist alphabetisch sortiert, dies verschiebt das ausgewählte Element zu dem Abschnitt, der (zum Beispiel) beginnt mit "e".Fangen
KeyDown
zu zwingen, das dropdown zu öffnen, könnte nützlich sein, wenn Sie erwarten, dass mehrere Einträge beginnen mit dem gleichen Buchstaben.InformationsquelleAutor der Antwort MoominTroll
Vorausgesetzt Ihre Artikel sind alphabetisch sortiert, einfach die Einstellung
IsTextSearchEnabled="True"
springen sollten, um die Elemente beginnend mit dem Buchstaben (oder Buchstaben) Sie geben in dieComboBox
.Hier ist ein Beispiel einer meiner
ComboBox
es, ich habe vereinfacht die Bindungen, wie es ist eindeutig nicht der wichtige Teil hier...Dieser funktioniert perfekt für Sie einen Wert aus der Liste, aber die Suche Wert, den Sie eingeben, wird nicht angezeigt in der TextBox ein Teil der Kontrolle, wie ich
IsEditable
auf false gesetzt.Wenn jemand Lust hätte, zu erklären, warum dies wurde gewählt, würde es geschätzt werden, sehe ich keine problem mit der Antwort habe ich vorausgesetzt, und sehe nicht ein, warum ich verdienen einen Ruf zu verlieren, wenn ich versuche nur zu helfen (und haben die Leistung eine angemessene Antwort!)
InformationsquelleAutor der Antwort TabbyCool
Alle die ich tun musste, war, fügen Sie die folgenden:
InformationsquelleAutor der Antwort mwolff