2013-07-25 2 views
0

У меня есть ComboBox, привязанный к 1 datatable (1 столбец «Страна») и список, привязанный к другому 1 (2 столбца «Имя», «Страна»). Как сделать фильтр списка в выбранном элементе в поле со списком?WPF-фильтрация ListBox после того, как ComboBox выбрал изменения C#

Например:

ComboBox значения: GER, POL, RUS

DataTable переплетены в ListBox:

Name | Country 
John | GER 
Luke | POL 
Sasha| RUS 
CJ | GER 
Carl | POL 

когда я выбираю ГЭР в выпадающий список, я хочу, чтобы обновить ListBox, чтобы увидеть только:
John
CJ

я использовал уже фильтр для DataTable

dataSet.Tables["Name"].DefaultView.RowFilter = "Country Like '%" + comboBoxFilter.Text + "%' "; 

Но у меня есть результат с задержкой на 1 клик.

change to | result 

GER  | no change 
POL  | now I see GER names 
RUS  | now I see POL names 
POL  | now I see RUS names 

Почему это задерживается?

+0

Вы можете оставить заедание или установки itemssources? – blindmeis

+0

listBoxNames.DataContext = dataSet.Tables ["Names"]; – user1736332

+0

Вы обновляете таблицу после фильтрации? – Sonhja

ответ

0
combobox.text is delayed for 1 event 

получить actuall выбранное значение в коде события изменения выбора, я должен был

DataRowView drw = (DataRowView)(sender as ComboBox).SelectedItem; 
string text = drw["Type"].ToString() ; 
Смежные вопросы