C# WPF数据网格与x27之间的差异;s EnableRowVirtualization和VirtualzingStackPanel.is虚拟化属性
几乎没有关于环境影响的信息C# WPF数据网格与x27之间的差异;s EnableRowVirtualization和VirtualzingStackPanel.is虚拟化属性,c#,wpf,datagrid,ui-virtualization,C#,Wpf,Datagrid,Ui Virtualization,几乎没有关于环境影响的信息 VirtualizingStackPanel.IsVirtualizing="True" 及 有人能澄清区别是什么吗 另外,作为一个额外的好处,有人能澄清一下EnableRowVirtualization和EnableColumnVirtualization是否在3.5网格上做了什么,因为MSDN文档只列出了4.0版的这些属性,但它们肯定存在于3.5版中 谢谢。无论是虚拟化还是启用RowVirtualization/启用ColumnVirtualization都遵
VirtualizingStackPanel.IsVirtualizing="True"
及
有人能澄清区别是什么吗
另外,作为一个额外的好处,有人能澄清一下EnableRowVirtualization和EnableColumnVirtualization是否在3.5网格上做了什么,因为MSDN文档只列出了4.0版的这些属性,但它们肯定存在于3.5版中
谢谢。无论是
虚拟化
还是启用RowVirtualization
/启用ColumnVirtualization
都遵循相同的原则,即只有在需要时才对项目进行可视化,并且重复使用容器
本质上,面板
(或网格
)跟踪可见的内容,如果更改了,它将使用内部类,“ItemContainerGenerator”
,来调整和构建新项目()
两者的动机都是容器仅根据需要生成,从而节省内存并提高性能
至于为什么有两个:面板设计为仅向一个方向延伸,水平或垂直;所以他们为它实现了一个附加属性。另一方面,网格
在两个维度中扩展,因此它们为每个维度实现了一个属性
另一个区别是学术性的:isvirtualization
是一个附加属性,而Grid
的对应属性是本机属性。不知道他们为什么选择这种差异
关于EnableRowVirtualization/EnableColumnVirtualization属性的方向,相关链接是和有趣的说明。您能否进一步澄清设置附加属性而不是/以及EnableRowVirtualization/EnableColumnVirtualization属性的影响?我知道他们开启/关闭同一种行为,但我仍然不知道是否可以使用其中一种,即他们是否有完全重叠的职责,或者实际上在幕后做不同的事情?这种行为是在ItemsControl级别实现的,因此会影响从中派生的类。”在引擎盖下,除了方向性之外,算法没有明显的差异。也。。。使用一种设置而不是另一种设置并不是一种选择,因为本机属性应该在可用时使用。
EnableRowVirtualization="True" EnableColumnVirtualization="True".