2011-02-03 106 views
1

仍然试图让我的DataGrid走得更快,我有一个关于这个问题:DataGrid上的“VirtualizingStackPanel.IsVirtualizingProperty = true”是做什么的?

myDataGrid.SetValue(VirtualizingStackPanel.IsVirtualizingProperty, true); 

我已阅读在多个场合,这可能提高DataGrid的加载时间。

右...

  • 试了一下,没有看到在所有
  • 任何区别试图与行/列虚拟化每一个可能的组合,丝毫看不出任何差别要么
  • 试图设置此我认为它可以在DG的模板上发挥作用(在DG本身,然后在scrollviewer和其他一些地方,我宁愿不告诉,因为他们真的是长镜头,我很惭愧地承认我实际上尝试了他们),但没有成功。

所以我的问题:

  • 这是什么行代码怎么办呢?
  • 它是如何工作的?
  • 我应该在哪里看到差异?
  • 并且有人曾经尝试过这种方法,并且DG的加载时间真的有了实质性的改善吗?或者所有关于写这个的建议都是这样的:建议?

回答

2

根据对this question的回答,虚拟化默认打开,所以如果添加该行,没有什么区别也就不足为奇了。

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

+0

嗯,我猜这么多,但那么添加此代码有什么意义?你给的链接说这已经是真的(感谢链接btw),所以基本上它没有什么区别,如果我已经启用了行/列虚拟化,那么有什么意义呢?我想如果数据是虚拟化的,容器不会被添加,直到你反正滚动,对吧? – David 2011-02-03 09:55:51