WPF DataGrid仅计算可见行

时间:2014-09-05 16:28:53

标签: c# wpf datagrid combobox

我记得几个月前阅读一篇关于功能或DataGrid或DataGrid扩展版本的文章,该文章仅连接用户可见的行上的通知,绑定等,还有一些不可见,以提供快速显示在展示时。

我找不到这篇文章,我的谷歌搜索没有想出任何东西。

有谁知道这个功能是什么以及它叫什么?

我想要这样做的原因是因为我正在显示一个包含大量行(1000+)的DataGrid。定义行使得两个单元格显示可能值的组合框。如果没有这些组合框,数据网格将加载(执行SQL脚本并转换为绑定到DataGrid的DataTable)并几乎立即显示。当我添加组合框时,加载大约需要10-15秒。我认为文章解决了这个问题,并表示性能会更好,因为DataGrid只创建了直接视图所需的组合框,而不是所有1000多行。

关于如何在将组合框添加到DataGrid时避免漫长等待时间的其他建议(请求说明这两个单元格是组合框,因此删除不是一个选项)。

1 个答案:

答案 0 :(得分:1)

也许您正在考虑RowVirtualization属性?

... When the EnableRowVirtualization property is set to true, the DataGrid does not instantiate a DataGridRow object for each data item in the bound data source. Instead, the DataGrid creates DataGridRow objects only when they are needed ...

换句话说,这将通过仅将正在显示的行加载到内存中来提高性能。在事情开始变得非常缓慢之前,典型应用程序可以显示的控件数量是有限的。 虚拟化控件就是解决此问题的方法。

例如,请参阅此问题的答案:Upper (reasonable) limit to number of user control instances。尽管这特别适用于UserControls,但同样的概念适用于所有控件。