我有一个函数,它检查对象列表以查看它们是否被点击并相应地触发了OnClick事件。我相信该功能正常工作,但我有一个问题:“Collection was modified ...”问题
当我钩到一个OnClick事件,并删除并插入元素到列表中的不同位置(此程序的典型功能),我收到“收集已修改...”错误。
我相信我明白是怎么回事:发射必要的onclick事件经过的每个对象
- 函数周期
- 触发一个事件和对象改变的地方以每挂钩函数 列表
- 抛出异常的修改集合,而通过它迭代
我的问题是,如何做我允许的功能通过迭代将对象,在适当的时候触发必要的事件,并仍然允许用户选择操纵对象在列表中的位置?
我认为第二个选项听起来最好。我将在更新过程中记录对列表的任何修改,然后在迭代完成后应用它们。 – 2010-05-25 13:56:00
请注意,当您进行多个编辑 - “交换1和2”和“交换2和3”或“在A之后移动C”和“删除”时,您必须清楚“一个”。我通常会发现,通过迭代副本来制作正确的代码会更容易,尽管它可能非常低效。 – 2010-05-26 11:25:07