Я загружаю свои элементы из базы данных, и когда они загружаются, я устанавливаю флаг, который останавливает запуск события после того, как загрузка завершена, событие может и должно сработать. Теперь, когда я пытаюсь отметить элемент, который не был отмечен, он соответственно изменит свою группу, но когда я уберу галочку с элемента, который был загружен из БД как (выполнено), событие сработает дважды, и ничего не произойдет. :
![enter image description here](https://i.stack.imgur.com/CGIhF.png)
Чтобы уточнить, когда я проверяю тот, который отмечен красным, он работает нормально, но когда я снимаю галку с того, который отмечен желтым, он не работает.
Мой код:
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);
}