我正在尝试设计一个带有数据网格、网格拆分器和包含一些消息的底部面板的 View 。像这样的东西:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="10"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<toolkit:DataGrid Grid.Row="0" {details...} />
<GridSplitter Grid.Row="1" {details...} />
<TextBox Grid.Row="2" {details...} />
</Grid>
此布局看起来很完美 - 网格填充了 View 的大部分,并且我有分隔符以在必要时展开底部的文本框。问题是 Datagrid 变得非常大,我需要启用虚拟化。这只有在我相信为网格容器提供明确高度的情况下才有效?
有没有办法获得我想要的布局(网格填充所有可用空间)同时启用虚拟化?
最佳答案
Is there a way to get the layout I want (where the grid fills all available space) but also have virtualization enabled?
虚拟化在您描述的场景中应该可以正常工作,只要 Grid 的父级没有在垂直方向上测量到无穷大。如果是这样,分离器将无法工作。
您如何确定您的 DataGrid 中的行没有被虚拟化?
请注意,DataGrid 确实在您的场景中具有明确的高度。更具体地说,父 Grid 仍将 DataGrid 测量到一个明确的高度(考虑到其他行后 Grid 中剩余的垂直空间)。
关于c# - WPF 数据网格虚拟化和自动高度(不明确),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239111/