WPF / Silverlight AutoCompleteBox con la possibilità di aggiungere nuovi valori alla lista
-
01-10-2019 - |
Domanda
Vorrei utilizzare autocompletebox con un elenco di valori, ma anche aggiungere nuovi valori all'elenco se un utente inserisce uno che non è presente.
Al momento ho una proprietà stringa nel mio modello vista chiamata 'Commento'. Attualmente questo è destinato a una casella di testo nella vista - utente digita un commento e il modello di vista viene aggiornata. Semplice.
Per risparmiare tempo, il mio cliente vorrebbe che per completare automaticamente dai valori precedenti, in modo che il modo in cui ho pensato di fare questo è qualcosa di simile:
ViewModel
public string Comment;
public ObservableCollection<string> CommentsList { ... }
(popolare il CommentsList quando viene creato il ViewModel)
Visualizza
<AutoCompleteComboBox ItemsSource="{Binding CommentsList}" SelectedItem="{Binding Comment, Mode=TwoWay/>
Così, quando l'utente seleziona un valore, si salva il valore nella proprietà commento. Questo funziona bene se l'utente seleziona un elemento della lista, ma se l'utente digita un nuovo valore, la proprietà commento non viene aggiornato (è nullo perché l'elemento selezionato non era nella lista).
Questo è possibile con autocompletebox?
Grazie in anticipo, Will
Soluzione
Trovato la soluzione ...
avevo bisogno di utilizzare la proprietà Text, non SelectedItem.
testo Contiene il testo attuale che l'utente ha inserito o selezionato.
SelectedItem È null se nessun elemento è attualmente selezionato. Se i naviga utente attraverso il giù goccia, selezione delle voci, o clic su un elemento, questo verrà aggiornato a tale elemento.
Si veda:
http://www.jeff.wilcox.name/2008/ 10 / introducendo-autocompletebox /