我试图检测用户何时在 ListView 中选择新项目以及何时取消选择所有内容(通过单击 ListView 上的空白区域),但我很难做到正确。我需要这个来启用或禁用几个“上移项目”和“下移项目”按钮。我认为最好的方法是处理ItemSelectionChanged
事件,所以我有这个,这似乎很明显:
private void lstItems_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
if (e.IsSelected) {
cmbMoveUp.Enabled = true;
cmbMoveDn.Enabled = true;
} else {
cmbMoveUp.Enabled = false;
cmbMoveDn.Enabled = false;
}
}
当用户取消选择所有内容时它可以正常工作,但问题是当用户选择另一个项目时会触发此事件两次:一次用于取消选择当前项目,另一次用于选择新项目。This causes some blinking on the "Move item up" and "Move item down" buttons, because it will first disable the buttons (because the current item was deselected) and then enable them again (when the new item is selected).
任何人都知道我该如何解决这个问题?我已经没有想法了。
提前致谢。