【发布时间】:2012-07-07 22:12:09
【问题描述】:
我正在使用 .NET 4 WPF DataGrid,并注意到在使用大量列时垂直滚动性能不佳。这是我为测试它所做的:
- 启用虚拟化(VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling")
- 将 DataGrid 嵌入到简单的网格布局中,并且此窗口中没有其他控件
- 这些列没有自定义格式,没有图像 - 只是简单的文本
- 我在一台相当不错的计算机上运行。 win7(64 位)在四核 3.2gz 上,8gb ram 和 radeon 7800 系列卡
- 使用 Perforator 进行的测试没有显示任何不好的东西,例如软件渲染等
以下是一些结果:
- 100 行 x 5 列:平滑滚动
- 100,000 行 x 5 列:平滑滚动
- 100 行 x 75 列:滚动性能非常差
- 100,000 行 x 75 列:完全冻结
当我有大量列 (~75 - 100) 时,如何提高垂直滚动性能?
谢谢
【问题讨论】:
-
75 列是否有意义,即使它工作得完美无缺?我建议默认情况下只使用重要的列,并将可选列的按字母顺序排序的列表显示为网格一侧的复选框,可以根据用户的请求使其可见。
标签: wpf performance datagrid