gho*_*ago 4 c# silverlight telerik observablecollection radchart
在速度和生成的通知量方面,这段代码是:
ObservableCollection<Foo> foo = new ObservableCollection<Foo>(bar);
this.SomeProperty = foo;
Run Code Online (Sandbox Code Playgroud)
同样如下:
this.SomeProperty = new ObservableCollection<Foo>();
foreach (var v in bar)
{
this.SomeProperty.Add(v);
}
Run Code Online (Sandbox Code Playgroud)
如果它们相同,是否有可能以某种方式关闭生成的通知?
目标: 我正试图加速在Silverlight中显示Telerik RadChart.即使在设置了包含ObservableCollection的属性之后,似乎还需要一段时间才能显示(并在浏览器应用程序中冻结).绘制图表后,一切正常.
简介或测试它!根据文档,在 添加,删除,更改,移动项目或刷新整个列表时会发生PropertyChanged事件.因此,您可以编写一些只订阅此事件的测试代码,看看会发生什么.
快速执行和线程安全的可观察集合 - 如果是由于持续的OnChanged事件拦截,请考虑仅在批量更新后触发 - 有人已经为您完成此工作
http://www.telerik.com/help/silverlight/radchart-performance-tips-and-tricks.html 专门处理您在页面中间描述的场景.他们的结论与2相同 - 事实上,代码看起来非常相似:-)
如果在实际发生绑定之前发生了冻结,那么我将确保延迟实际上不是基于渲染或由于另一个重复(如加载集合所花费的时间).再次,分析是你的朋友.