WPF数据网格虚拟化和自动高度(非显式)

4

我正在尝试设计一个视图,其中包含数据网格、网格分隔器和底部面板,用于显示一些消息。类似于:

<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变得非常大,我需要启用虚拟化。我相信只有给网格容器明确的高度才能实现。

有没有办法获得我想要的布局(其中网格填充所有可用空间),同时也启用虚拟化?

1个回答

2
有没有一种方法可以获得我想要的布局(其中网格填充所有可用空间),但也启用虚拟化?
在您描述的情况下,虚拟化应该可以正常工作,只要 Grid 的父级在垂直方向上不将其测量到无限大。如果是这样,分隔符将无法使用。
您如何确定 DataGrid 中的行未被虚拟化?
请注意,在您的情况下,DataGrid 具有明确的高度。更具体地说,父 Grid 仍将 DataGrid 测量为明确的高度(考虑其他行后剩余的垂直空间)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接