gpt4 book ai didi

c# - WPF DataGrid 的 EnableRowVirtualization 和 VirtualizingStackPanel.IsVirtualizing 属性之间的区别

转载 作者:可可西里 更新时间:2023-11-01 09:08:09 24 4
gpt4 key购买 nike

几乎没有关于设置影响的信息;

VirtualizingStackPanel.IsVirtualizing="True" 

EnableRowVirtualization="True" EnableColumnVirtualization="True". 

谁能解释一下区别是什么?

此外,作为额外的奖励,任何人都可以澄清 EnableRowVirtualization 和 EnableColumnVirtualization 是否真的在 3.5 网格上执行任何操作,因为 MSDN 文档仅将这些属性列回 4.0,但它们肯定存在于 3.5 中?

谢谢。

最佳答案

IsVirtualizingEnableRowVirtualization/EnableColumnVirtualization 的操作原理相同,即项目仅在需要时可视化,容器可重复使用.

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

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

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

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

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

关于c# - WPF DataGrid 的 EnableRowVirtualization 和 VirtualizingStackPanel.IsVirtualizing 属性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com