WinForms: событие ItemCheck срабатывает дважды на некоторых предметах - PullRequest
0 голосов
/ 05 января 2019

Я загружаю свои элементы из базы данных, и когда они загружаются, я устанавливаю флаг, который останавливает запуск события после того, как загрузка завершена, событие может и должно сработать. Теперь, когда я пытаюсь отметить элемент, который не был отмечен, он соответственно изменит свою группу, но когда я уберу галочку с элемента, который был загружен из БД как (выполнено), событие сработает дважды, и ничего не произойдет. : enter image description here

Чтобы уточнить, когда я проверяю тот, который отмечен красным, он работает нормально, но когда я снимаю галку с того, который отмечен желтым, он не работает.

Мой код:

private void tasksListView_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (dontRunHandler) return;
    int itemIndex = e.Index;
    Action ChangeGroup = () =>
    {
        int projId = selectedProjectId;
        var currentItem = tasksListView.Items[itemIndex];
        tasks[projId][itemIndex].state ^= true;
        int group = (tasks[projId][itemIndex].state) ? 1 : 0; // Group 0 = Todo and Group 1 = Complete
        currentItem.Group = tasksListView.Groups[group];
    };

    tasksListView.BeginInvoke(ChangeGroup);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...