作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定以下Datagrid
:
<DataGrid AutoGenerateColumns="False" HeadersVisibility="Column"
IsReadOnly="True"
VirtualizingPanel.IsVirtualizing="true" VirtualizingPanel.VirtualizationMode="Standard"
EnableColumnVirtualization="True"
ItemsSource="{Binding Data, IsAsync=True}">
<DataGrid.Columns>
<DataGridTextColumn Header="Header1" Width="Auto" Binding="{Binding Property1}" />
<DataGridTextColumn Header="Header2" Width="Auto" Binding="{Binding Property2, Mode=OneWay}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
为什么不显示任何行?当我删除 EnableColumnVirtualization
或将其设置为 false
时,一切正常。可以添加或删除EnableRowVirtualization
,而不会出现任何问题。
此行为有解释吗?
最佳答案
DataGrid.EnableColumnVirtualization
仅当这些列中有要显示的数据并且其可见性设置为可见时才会创建列。这种破坏了整个 Visibility=Visibility.Visible
期望。
如果您要求即使没有数据也有列标题,则不要启用列虚拟化,但保留行虚拟化。
DataGrid.EnableRowVirtualization
仅创建将在屏幕上可见的行。与VirtualizingPanel.VirtualizationMode=Recycling
结合使用时,它确实可以提高应用程序中用于显示视觉元素的内存量,这样您就不会经常遇到垃圾回收。
关于wpf - DataGrid 中的 EnableColumnVirtualization 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401027/
给定以下Datagrid: 为什么不显示任何行?当我删除 EnableColumnVirtualization 或将其设置为 false
我有一个带有 EnableColumnVirtualization="True" 的 WPF DataGrid .用户控件会显示,但只要您滚动或调整大小,您就会收到 NullReferenceExce
我是一名优秀的程序员,十分优秀!