我正在使用 Compact Framework 开发一个智能设备项目。
我有一个ListView
带有几个 checkableListViewItem
的:属性CheckBoxes
是真的。我一次只需要检查一个ListViewItem
,所以我订阅了这个ItemCheck
事件:
// I need to know the last item checked
private ListViewItem lastItemChecked;
private void listView_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (lastItemChecked != null && lastItemChecked.Checked)
{
/* I need to do the following to prevent infinite recursion:
i.e. subscribe and then unsubscribe the ItemCheck event. */
listView.ItemCheck -= listView_ItemCheck;
lastItemChecked.Checked = false;
listView.ItemCheck += listView_ItemCheck;
}
lastItemChecked = listView.Items[e.Index];
}
有没有更好的方法来防止无限递归,从而防止Stack Overflow
?