2010-09-30 33 views
21

Sono ansioso di trovare un codice solido (libero, Open Source o tutorial/esempio) per fare in modo che un Combobox WPF esegua la selezione automatica/autofilter mentre l'utente digita. Ma tutto quello che ho provato finora ha avuto qualche tipo di problema ...WPF Combobox con auto-completamento/filtro automatico?

Altre cose che ho considerato:

  • so che Windows Forms' Combobox control has AutoCompleteMode e ho potuto embed it in WPF, ma non riesco a immaginare che avrebbe giocato molto bene con i miei associazioni di dati WPF.

  • Forse è troppo complesso e ho bisogno di semplificare, magari costruendo ObservableCollections unidimensionali (a singola proprietà) per il ComboBoxen ... Tuttavia, la sfida di applicare più filtri (un set per il valore di un altro controllo, e uno da quello che l'utente sta digitando) a più controlli utilizzando viste differenti dello stesso DataSet richiederebbe una quantità ridicola di potenza di elaborazione per distruggere e ricostruire l'elenco ogni volta che l'utente digita un carattere!

Quindi ... sono alla fine. Eventuali suggerimenti?

risposta

27

Se il Combobox ha qualche fonte di dati collegato ad esso, solo fare

1-IsTextSearchEnabled = true. 
2-IsEditable = true. 

vi sono buone per andare

+0

Mi piacerebbe essere in grado di cercare su più campi (ad esempio "valore" e "descrizione "), essere case-insensitive, ecc .-- ma è un PITA. Tornando indietro, perché funziona come previsto con templates et al. – ewall

+0

È possibile filtrare su più campi creando un'altra proprietà e unendo insieme i campi. Quindi imposta il campo di ricerca su quello. Poiché ha tutti i campi combinati di cui hai bisogno, la ricerca funziona. Un po 'un trucco, ma ha fatto il lavoro. – Kelly

+1

@wall puoi provare https://www.nuget.org/packages/THEFilteredComboBox/ questo abbiamo creato questo controllo perché usare le proprietà di cui sopra non era abbastanza –

3
+0

provarlo ora ... Finora, sono impressionato dall'attenzione dei dettagli dell'autore. – ewall

+0

Non ho finito per utilizzare questo nel progetto corrente, ma terrò a disposizione per quelli futuri, in quanto è piuttosto solido. Grazie! – ewall

+6

Il link sopra è morto. Ma usando web.archive.org ho scoperto che il codice è ospitato qui http://wpfactb.codeplex.com/ (puoi leggere l'articolo qui http://web.archive.org/web/20120421111715/http:// blogs.windowsclient.net/dragonz/archive/2010/02/23/autocomplete-textbox-control-for-wpf.aspx) –