我正在尝试使用数据网格,网格拆分器和包含一些消息的底部面板设计视图。就像是:
<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>
这种布局看起来很完美-网格填充了视图的大部分内容,如有必要,我可以使用拆分器在底部扩展文本框。问题在于,Datagrid变得非常大,我需要启用虚拟化。这仅在我相信网格容器的高度明确的情况下有效吗?
有没有办法获得我想要的布局(网格填满所有可用空间)并启用虚拟化?
最佳答案
有没有办法获得我想要的布局(网格填满所有可用空间)并启用虚拟化?
只要网格的父级不在垂直方向将其测量为无穷大,虚拟化在您描述的方案中就可以正常工作。如果是这种情况,则拆分器将无法工作。
您如何确定未对DataGrid中的行进行虚拟化?
请注意,DataGrid在您的方案中确实有明确的高度。更具体地说,父网格仍将DataGrid测量到一个明确的高度(考虑了其他行之后,Grid中剩余的垂直空间)。
关于c# - WPF Datagrid虚拟化和自动高度(未明确),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2239111/