WPF DataGrid 的 EnableRowVirtualization 和 VirtualizingStackPa

本文关键字:VirtualizingStackPa EnableRowVirtualization DataGrid WPF | 更新日期: 2023-09-27 18:32:44

几乎没有

关于设置影响的信息;

VirtualizingStackPanel.IsVirtualizing="True" 

EnableRowVirtualization="True" EnableColumnVirtualization="True". 

有人可以澄清一下有什么区别吗?

另外,作为额外的好处,任何人都可以澄清EnableRowVirtualization 和 EnableColumnVirtualization 是否真的在 3.5 网格上做任何事情,因为 MSDN 文档只列出了这些属性回到 4.0,但它们肯定存在于 3.5 中?

谢谢。

WPF DataGrid 的 EnableRowVirtualization 和 VirtualizingStackPa

IsVirtualizingEnableRowVirtualization/EnableColumnVirtualization都遵循相同的原理,即仅在需要时可视化项目,并且重复使用容器。

本质上,Panel(或Grid(跟踪可见的内容,如果更改,它使用内部类'ItemContainerGenerator'来调整和构建新项目(https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.itemcontainergenerator(。

两者的动机是容器仅按需生成,从而节省内存并提高性能。

至于为什么有两个:Panel被设计为只在单个方向上扩展,要么水平,要么垂直;所以他们为它实现了单个附加属性。 另一方面,Grid在二维中扩展,因此他们为每个维度实现了一个属性。

另一个区别是学术性的:IsVirtualizing是一个附加属性,而Grid的对应项是本机属性。 不知道他们为什么选择这种差异......

相关链接 https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.datagrid.enablerowvirtualization https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.virtualizingstackpanel.isvirtualizing

相关文章:
  • 没有找到相关文章