c# vb.net observablecollection inotifycollectionchanged addrange
我有ObservableCollection<T>集合,我想用新的元素集合替换所有元素,我可以这样做:
collection.Clear();
Run Code Online (Sandbox Code Playgroud)
要么:
collection.ClearItems();
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,这两种方法有什么区别?)
我也foreach可以collection.Add一个接一个地使用,但这会多次发射
添加元素集合时也一样.
编辑:
我在这里找到了一个很好的库:增强的ObservableCollection能够延迟或禁用通知,但它似乎不支持silverlight.
我想知道为什么根据这篇文章和可观察集合比WPF中的List <>集合明显更快地绑定(20毫秒vs 1685毫秒,比800倍快).我查看了ObservableCollection的内部,它使用List作为它的存储集合对象(我使用了反射器并在构造函数中看到了这个)
public Collection()
{
this.items = new List<T>();
}
Run Code Online (Sandbox Code Playgroud)
那么这里发生了什么?