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

È stato utile?

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 /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top