2016-03-24 5 views
2

Diese ComboBox hat eine lange Liste von Werten, also möchte ich Benutzer in der Lage sein zu tippen, was theyre denkt, damit es ihren Text mit ComboBox Werten übereinstimmt.Suche eine ComboBox ohne neue Werte zu akzeptieren

Mit IsTextSearchable allein nichts tun - Hinzufügen IsEditable ermöglicht es, wie ich möchte, aber der Benutzer kann ihren eigenen Wert in den Textbereich eingeben, die mein Formular nicht akzeptieren kann.

<ComboBox x:Name="deptCombo" IsEditable="True" IsTextSearchEnabled="True" /> 

Wie kann ich erlauben Benutzern, die comboBox zu suchen, sondern entfernen, was sie in die Box eingegeben, wenn ihr nicht eine der bereits existierenden Produkte, sobald sie von der Box klicken aus (auf ein anderes Feld oder die „Enter“ -Taste , was auch immer)?

+0

I 'mit' IsEditable = „False“ getestet haben, wenn Sie combobox konzentrieren und starten Wortsuche eingeben funktionieren wird, und wird nicht zulassen, dass Elemente, die nicht in 'ComboBox.ItemsSource' – bars222

+1

@ bars222 vorhanden sind , * Suche * ist in diesem Fall nur der erste Buchstabe. Ich würde 'IsEditable = true' lassen, aber eine Validierung (roter Rahmen) hinzufügen, um zu verhindern, dass Benutzer eigene Werte eingeben. Wenn der Benutzer etwas falsch eingibt, verwenden Sie einfach den vorherigen gültigen Wert oder verweigern Sie die Weiterleitung an Sie. – Sinatr

+0

@Sinatr Entschuldigung, Sie haben Recht. Ich stimme zu, die Validierung sollte funktionieren. – bars222

Antwort

1

Aus Ihrer Beschreibung nehme ich an, dass Sie die Autovervollständigen-Funktion von einer ComboBox wollen. Während also der Bediener Zeichen eingibt, möchten Sie Elemente in Ihrem Kombinationsfeld anzeigen, die mit den bereits eingegebenen Zeichen übereinstimmen, sodass der Bediener eine Auswahl treffen kann, ohne den vollständigen Wert eingeben zu müssen.

Ich bin nicht sicher, wie dies geschieht mit WPF und XAML, aber die ComboBox-Klasse hat zwei Eigenschaften, die Auto-Vervollständigen steuern:

ComboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend 
ComboBox.AutoCompleteSource = AutoCompleteSource.ListItems; 

Jetzt, während der Bediener ist die Eingabe, durchsucht das Programm die Kombinationsfeldelemente und zeigt die passenden.

Lesen Sie die Informationen zu diesen Eigenschaften, um mehr über andere Möglichkeiten zu erfahren. MSDN ComboBox.AutoCompleteMode

Verwandte Themen