我有一些与SL Enterprise应用程序开发相关的性能问题。
- 我们有10.000行绑定到ItemsSource控件。 (数据绑定时共有100.000+个UIElements)
Q1。如何在另一个线程中执行此绑定?因为Silverlight在绑定发生时卡住了。
问题2.您可以使用与在ItemsControl中相同的视觉灵活性建议的其他方法。
- 我们从服务器中提取了总共60MB(解压缩的二进制序列化XML)数据,让我们的SL用户使用它的时间为20分钟。
问:我们有一些内存泄漏,并且很难弄清楚内存中的内容是什么?我们有工具来展示这个吗?根据我们最新的测试,UIElements是充满记忆的。我们有5个嵌套的Itemscontrols,跟踪很多内部控件的“加载”事件,以便用计算填充适当的值。据我所知,虚拟化不适用于物品控制。
感谢您的所有时间。
答案 0 :(得分:1)
如果您正在使用DataGrid,则默认情况下应启用虚拟化。
一次拉出那么多数据也可能会造成问题。我试图找到一种涉及服务器端分页的解决方案。
修改强>
刚看到您正在使用ItemsControl。您将看到的最大性能提升(甚至在服务器分页工作之前)将是虚拟化工作。这是一篇关于使用通用ItemsControl执行此操作的好文章(它还解决了事件未正确触发的问题):