在我的模型中,我需要知道特定集合何时发生更改,因此我订阅了 ObservableCollection 的 CollectionChanged 事件。除了该操作相当耗费资源外,它工作得非常好。
所以当客户端代码做的时候:
foreach(Item i in longList)
{
model.ObservableCollection.Add(i);
}
当所有重要的是添加最终项目后的结果时,我正在为每次迭代运行昂贵的操作。
如果在第一个 CollectionChanged 事件仍在执行时引发另一个事件处理程序,是否有取消当前正在运行的事件处理程序的方法 - 然后继续处理最近的事件?
最佳答案
ObservableCollection 不是密封类。派生您自己的并添加 BeginUpdate 和 EndUpdate() 方法以及 IsUpdating 属性。
关于c# - 在 ObservableCollection.CollectionChanged 上运行昂贵的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087906/