Witam!
Stworzyłem comboboxa zapełnianego przez bazę danych.
Jednak mam bardzo dużo wpisów, chciał bym więc zawsze wyświetlać 10-15 wyników.
W jaki sposób filtrować za informacje wyświetlane w comboboxie, tak abym po wpisaniu np 123 otrzymał wyniki:
np:
123
9123
a123
aaa123
zz123
itd..?
Z góry dziękuje za pomoc
Pozdrawiam
może: http://stackoverflow.com/questions/2602252/mysql-query-string-contains ?
jeśli trzymasz gdzieś już te wyniki (np w List) to przeleć foreach i jeśli zawiera wpisany ciąg znaków to dodaj jako item do comboboxa
No, dobrze, wiem jak uzupełnić dane, jednak jak spowodować, żeby użytkownik mógł wpisywać tekst do filtrowania?
Możesz użyć też biblioteki: http://www.codeproject.com/Articles/293954/AutoSuggest-and-AutoComplete-control-in-WPF i zobaczyć jak to działa.
Może ustawić właściwość IsEditable dla kontrolki ComboBox na true. Ustawić obsługę zdarzenia TextBoxBase.TextChanged, a tam wprowadzić filtrowanie danych (po każdej wprowadzonej literce nastąpi wywołanie takiego zdarzenia - dla 20-30 rekordów działa to momentalnie, dla większej ilości nie sprawdzałem).
<ComboBox x:Name="_comboBox_db" IsEditable="True" TextBoxBase.TextChanged="_comboBox_db_textchanged" ItemsSource={Binding SprawdzanaKolumna} />
private void _comboBox_db_textchanged(...)
{
...
list = from OBIEKT ob in BazaDanych.ListaObiektow
where ob.SprawdzanaKolumna.Contains(_comboBox_db.Text)
select ob.SprawdzanaKolumna;
_comboBox_db.ItemsSource = list;
...
}