我正在尝试将一系列更新推送到我已绑定列表框的集合中。由于列表可能会变得很大,我试图关闭更新(排序等),直到我完成插入所有新项目。
我想:
using (col.DeferRefesh())
{
.. add the items
}
但是这引发了一个异常,说我在DeferRefresh()打开时无法添加/删除项目。 做我想做的事情有适当的模式吗?
答案 0 :(得分:1)
在CollectionView中添加或删除项目会导致InvalidOperationException
,因为CollectionView的操作集IsAddingNew
或IsEditingItem
标志为true。
您在DeferRefresh()中可以做的是更改排序说明。
This blog提供了DeferRefresh()的使用方法。此外,当您实际更改集合视图中的值时,推迟集合视图刷新几乎是矛盾的。
答案 1 :(得分:0)
要执行此操作,您需要实现/派生自己的集合并在集合级别实现延迟刷新功能,然后在延迟刷新完成时触发带有重置的集合更改事件作为更改类型