gpt4 book ai didi

wpf - DataGrid 中的 EnableColumnVirtualization 如何工作?

转载 作者:行者123 更新时间:2023-12-03 00:21:37 25 4
gpt4 key购买 nike

给定以下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/

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