Jul*_*ius 10 c# wpf datagrid ui-virtualization
几乎没有关于设置影响的信息;
VirtualizingStackPanel.IsVirtualizing="True"
Run Code Online (Sandbox Code Playgroud)
和
EnableRowVirtualization="True" EnableColumnVirtualization="True".
Run Code Online (Sandbox Code Playgroud)
有人可以澄清一下有什么区别吗?
此外,作为额外的奖励,任何人都可以澄清EnableRowVirtualization和EnableColumnVirtualization是否在3.5网格上实际执行任何操作,因为MSDN文档仅将这些属性列为4.0,但它们肯定存在于3.5中?
谢谢.
Gay*_*Fow 10
两者IsVirtualizing和EnableRowVirtualization//都EnableColumnVirtualization遵循相同的原则,即只在需要时才能看到物品并重新使用容器.
本质上,Panel(或Grid)跟踪可见的内容,如果更改,它会使用内部类'ItemContainerGenerator'来调整和构建新项目(http://msdn.microsoft.com/en-us/library/system. windows.controls.itemcontainergenerator.aspx).
两者的动机是容器仅按需生成,从而节省内存并提高性能.
至于为什么有两个:它Panel被设计成仅在单一方向上延伸,水平或垂直; 所以他们为它实现了一个附加属性.Grid另一方面,A 在两个维度上扩展,因此它们为每个维度实现了一个属性.
另一个不同之处在于学术: IsVirtualizing是一个附属的财产,而它的对应物Grid是本土财产.不知道为什么他们选择了这种差异......
相关链接是http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.enablerowvirtualization(v=vs.100).aspx和http://msdn.microsoft.com/en-我们/库/ system.windows.controls.virtualizingstackpanel.isvirtualizing.aspx