我已经制作了customCheckedListBox
,我想用它来过滤dataGridView
mulitselect 选项。我希望能够捕获CheckedListBox
CheckedChange
状态,但CheckedListBox
只支持ItemCheck
事件。
这是我的代码:
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
事件只能处理一个选项,因此即使用户决定选择多个选项,它也只会显示第一个选择的项目。我想这个CheckedChanged
事件在我的情况下会起作用,但是当ItemCheck
事件被调用时还没有CheckedItems
。ItemCheck
事件结束后,它们变为“已检查” 。所以当它进入里面时FilterDataGrid
CheckedChanged.Count
等于0。
我的问题是我应该如何CheckedChanged
处理CheckedListBox
. 我希望我没有搞砸太多。如果有任何问题,请告诉我,我会尽力解释更多。