ObservableCollection.CollectionChanged Event的文档说明:
“在添加,删除,更改,移动或整个项目时发生列表是刷新。“
([ObservableCollection说的是同样的话。)
“刷新”是什么意思?
ObservableCollection上没有“ Refresh()
”方法,也没有听起来像这样做的方法。我可以在该类的文档中的任何其他地方都没有使用“刷新”一词。
同样,其基类Collection
也一无所有。
起初,我在想像一种方法,该方法将手动引发INotifyCollectionChanged
事件或类似事件,以在您实际上未从集合中添加/删除的情况下使用。但是没有明显的方法可以做到这一点。
同样,即使the reference source code for this class在注释标题中也仅提及“刷新”,其他地方都没有。
文档是否不正确?还是我缺少关于如何“刷新” ObservableCollection
对象的微妙之处?
希望此代码块对您有用。
public class CustomObservableCollection<T> : ObservableCollection<T>
{
public void Refresh()
{
for (var i = 0; i < this.Count(); i++)
this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}