Я сделал customCheckedListBox
, который я хочу использовать для фильтрации dataGridView
с опцией mulitselect. Я хотел бы иметь возможность поймать CheckedListBox
CheckedChange
состояние, но CheckedListBox
поддерживает только ItemCheck
событие.customCheckedListBox CheckedChanged
Вот мой код:
private void customCheckedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
FilterDataGrid();
}
private void FilterDataGrid()
{
var list4 = customCheckedListBox1.SelectedItems.Cast<string>().ToList();
if (customCheckedListBox1.SelectedItems.Count != 0)
{
var result = list3.Where(Srodek => list4.Any(x => x == Srodek.Srodek.category1));
DataTable ListAsDataTable3 = BuildDataTable2<CalaLinijka>(result);
DataView ListAsDataView3 = ListAsDataTable3.DefaultView;
dataGridView4.DataSource = view = ListAsDataView3;
}
}
Проблема заключается в том, что ItemCheck
событие может обрабатывать только один выбор, так что даже если пользователь решил выбрать более чем один opiton он будет показывать только первый выбранный пункт , Я думаю, что событие CheckedChanged
будет работать в моем случае, но когда вызывается событие ItemCheck
, пока нет CheckedItems
. Они становятся «проверенными» после завершения ItemCheck
. Поэтому, когда он идет в FilterDataGrid
CheckedChanged.Count
равен 0.
Мой вопрос, как я должен обрабатывать CheckedChanged
событие в CheckedListBox
. Надеюсь, что я не перепутал слишком много. Если будут какие-либо вопросы, просто дайте мне знать, и я постараюсь больше узнать.
Прокрутите все предметы и проверьте свойство 'Checked'. –
Хорошо, я сделал это так. Теперь я проверю, все ли работает нормально. – user2592968