Frage

Ich mag AutoCompleteBox mit einer Liste von Werten verwenden, sondern auch neue Werte in die Liste aufnehmen, wenn ein Benutzer betritt man das nicht vorhanden ist.

Im Moment habe ich eine String-Eigenschaft meiner Meinung nach Modell ‚Kommentar‘ genannt. Derzeit ist dies auf eine Textbox gebunden in den Blick - Benutzer einen Kommentar und die View-Modell aktualisiert wird. Einfach.

Um Zeit zu sparen, mein Kunde möchte es von früheren Werten automatisch zu vervollständigen, so dass die Art, wie ich dachte, dies zu tun, ist so etwas wie:

Ansichtsmodell

public string Comment;
public ObservableCollection<string> CommentsList { ... }

(die CommentsList füllen, wenn das Ansichtsmodell erstellt wird)

<AutoCompleteComboBox ItemsSource="{Binding CommentsList}" SelectedItem="{Binding Comment, Mode=TwoWay/>

Also, wenn der Benutzer einen Wert auswählt, speichert sie den Wert in der Eigenschaft Kommentar. Dies funktioniert gut, wenn der Benutzer wählt einen Eintrag in der Liste, aber wenn der Benutzer einen neuen Wert, wird die Kommentar Eigenschaft nicht aktualisiert (es ist null, weil das ausgewählte Element nicht in der Liste war).

Ist das möglich mit AutoCompleteBox?

Vielen Dank im Voraus, Will

War es hilfreich?

Lösung

Gefunden die Lösung ...

Ich brauchte die Eigenschaft Text zu verwenden, nicht SelectedItem.

Text Enthält den aktuellen Text, den der Benutzer eingegeben hat oder ausgewählt werden.

SelectedItem Ist null, wenn kein Element gerade ausgewählt ist. Wenn der Benutzer navigiert durch die Drop-Down, Auswählen von Elementen oder Klicks auf ein Element, wird dies in diesem Artikel aktualisiert werden.

Siehe auch:

http://www.jeff.wilcox.name/2008/ 10 / Einführung-AutoCompleteBox /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top