1

我有一些关于 SL Enterprise 应用程序开发的性能相关问题。

- 我们有 10.000 行绑定到 ItemsSource 控件。(数据绑定时总共 100.000+ UIElements)

Q1.如何在另一个线程中进行此绑定?因为 Silverlight 在绑定发生时卡住了。

Q2.您建议的任何其他方式来执行此操作,具有与我们在 ItemsControl 中相同的视觉灵活性。

-我们正在从服务器中提取总共 60MB(解压缩的二进制序列化 XML)数据,并让我们的 SL 用户使用它 20 分钟。

Q1.我们有一些内存泄漏并且很难弄清楚内存中的内容是什么?我们有工具来展示这一点吗?

根据我们最新的测试,UIElements 是填充内存的元素。我们有 5 个嵌套的 Items 控件,跟踪内部控件的许多“加载”事件,以便用计算填充适当的值。据我所知,虚拟化不适用于项目控制。

谢谢你所有的时间。

4

1 回答 1

1

如果您使用的是 DataGrid,则默认情况下应启用虚拟化。

一次提取这么多数据也可能会带来问题。我会尝试找到某种涉及服务器端分页的解决方案。

编辑:

刚刚看到您正在使用 ItemsControl。您将看到的最大性能提升(甚至在让服务器分页工作之前)将是让虚拟化工作。这是一篇关于使用通用 ItemsControl 执行此操作的好文章(它还解决了您的事件未正确触发的问题):

http://blogs.claritycon.com/blogs/lee_roth/archive/2009/09/16/custom-panels-in-silverlight-wpf-part-4-virtualization.aspx

于 2009-10-14T06:08:22.687 回答