WPF数据网格高度是无限的

时间:2016-10-19 04:35:29

标签: wpf xaml datagrid

我有两个datagrids(数据网格1和2),它们是从一个单独的用户控件绑定的:

      <Grid Grid.Row="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="auto" />
        </Grid.ColumnDefinitions>

        <Grid Grid.Row="0" Grid.Column="0" >               
        <local:DATAGRID1    x:Name="DATAGRID1" /></Grid>

        <Grid Grid.Row="1" Grid.Column="0">   
        <local:DATAGRID2   x:Name="DATAGRID2" /> </Grid>

        <Grid Grid.Row="0" x:Name="AddURLContainer" Grid.Column="1" >
            <StackPanel>
            <local:test1 x:Name="NewQueryControl"/>
            <local:test2 x:Name="AddURLControl" />
            </StackPanel>

        </Grid>
        </Grid>

但由于某种原因,数据网格的延伸时间比窗口长,并且不会限制在窗口高度内。我试图将Datagrids放在滚动查看器中,但滚动条也会离开窗口并且没有约束。我无法弄清楚为什么这样做。 实际数据网格的开头标记是(并且它们包含在用户控件而不是Stackpannel中):

<DataGrid  AutoGenerateColumns="False" 
           IsReadOnly="True" 
           SelectionMode="Single" 
           >

2 个答案:

答案 0 :(得分:0)

为什么使用* width和heigt?

使用自动:

 <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

自动将大小设置为已分配的内容。

答案 1 :(得分:0)

如果我从以下位置更改上面的主网格行属性,似乎是固定的:

    <Grid.RowDefinitions>
        <RowDefinition Height="50"/>
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>

要:

    <Grid.RowDefinitions>
        <RowDefinition Height="50"/>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

奇怪的修复,但它确实有效。