DataGrid上的“VirtualizingStackPanel.IsVirtualizingProperty = true”是做什么的?

时间:2011-02-03 09:24:02

标签: wpf datagrid virtualization

仍然试图让我的DataGrid更快,我对此有疑问:

myDataGrid.SetValue(VirtualizingStackPanel.IsVirtualizingProperty, true);

我已多次阅读过这可能会改善dataGrid的加载时间。

右...

  • 尝试过,没有看到任何差异
  • 尝试了所有可能的行/列虚拟化组合,没有看到任何差异
  • 试图在任何地方设置这个我认为它可以改变DG的模板(在DG本身,然后在滚动查看器和其他几个我不想告诉,因为他们真的很长镜头而且我'我很惭愧地承认我实际上甚至试过了它们,但没有成功。

所以我的问题:

  • 这行代码应该是什么?
  • 它是如何运作的?
  • 我应该把它放在哪里真正看到差异?
  • 并且有人真的试过这个并且DG的加载时间真的有了实质性的改善吗?或者是关于写这个的所有建议:建议?

1 个答案:

答案 0 :(得分:2)

根据this question的答案,默认情况下会启用虚拟化,因此如果添加该行,则没有任何区别。

虚拟化意味着只有在数据可见的情况下才会生成数据显示所需的控件,这意味着如果不可见,则不可见的行不会为其控件使用额外的内存,毕竟不需要生成数千个控件。一次只能看到20个。