我有一个列表视图,其中有多行并且启用了复选框我尝试编写一个代码,当我取消选中项目复选框时删除项目,因为默认选中它 在itemcheck事件中
If(list.Focused == true)
{
If (e.newvalue == checkState.unchecked)
{
list.items.removeAt( e.index);
list.Refresh();
}
}
我得到了一个outofrange异常,1对索引无效 '1'指的是我删除的项目的索引
答案 0 :(得分:0)
您必须测试索引是否在范围内(因为集合缩小)。在删除元素之前添加此测试:
if(list.items.count < e.index && e.index > 0)
答案 1 :(得分:0)
以下是检查事件中具有当前值和新值的解决方案,如果您删除该类抛出超出范围的项目,那么在检查事件完成之前不会应用新值,因为它尝试分配已删除项目的属性 您可以使用列表添加项目和已选中的项目删除项目并清除列表