我正在尝试使用数据网格设计一个视图,一个网格分割器和一个包含一些消息的底部面板.就像是:
<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变得非常大,我需要启用虚拟化.这只适用于我相信网格容器的显式高度?
有没有办法获得我想要的布局(网格填充所有可用空间)但是还启用了虚拟化?
最佳答案
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在您的方案中确实具有显式高度.更具体地说,父网格仍然将DataGrid测量到显式高度(在考虑其他行之后,网格中剩余的垂直空间).