Этот код предварительно фильтрует dataGridView, поэтому отображаются только отмеченные элементы в списке.C# Последний элемент checkedListBox не отображается
Проблема, с которой я столкнулся, заключается в том, что код как-то пропускает последний элемент каждый раз, если я не сниму его, еще раз проверьте и нажмите «Перейти».
Это мой код:
public partial class Notifications : Form
{
string filterstring = "";
int count = 0;
private void checkedListBox_ItemCheck(object sender, System.EventArgs e)
{
// Loop through all items in the checkedBoxes.
foreach (object itemChecked in checkedListBox.CheckedItems)
{
if (count != 0)
{
filterstring += "OR Responsible = '" + itemChecked.ToString() + "'";
}
else
filterstring += "Responsible = '" + itemChecked.ToString() + "'";
count += 1;
}
}
private void button1_Click(object sender, EventArgs e)
{
DataTableCollection tables = myDatabaseDataSet.Tables;
DataView view = new DataView(tables[0]);
BindingSource source = new BindingSource();
source.DataSource = view;
dataGridView1.DataSource = source;
source.Filter = filterstring;
}
Я знаю, что решение может быть глупо, но я не могу понять это.
Состояние проверки не обновляется до тех пор, пока не произойдет событие ItemCheck. [Управление проверкой CheckedListBox ItemCheck для запуска после того, как элемент был проверен не раньше] (http://stackoverflow.com/а/32291665/3110834) –