DataGridColumn的宽度不占用所有空间

时间:2016-01-18 09:46:59

标签: c# wpf datagrid

我希望我的DataGrid列可以占用他们可用的所有剩余空间,但同样宽。我过去曾使用Width = "*",但无论出于何种原因,它在这种情况下都不起作用。这是到目前为止DataGrid的代码;

        <Grid Grid.Column="4" Grid.RowSpan="2" Margin="10" MaxHeight="325">
            <DataGrid x:Name="bnumDataGrid" Grid.RowSpan="2" Grid.Column="4" ItemsSource="{Binding CurrentBnumsCollectionView}" 
                      CanUserAddRows="False" AutoGenerateColumns="False" SelectionChanged="BnumDataGridSelectionChanged">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Job ID" Width="*" Binding="{Binding JobID}"/>
                    <DataGridTextColumn Header="Job Description" Width="*" Binding="{Binding JobDescription}"/>
                </DataGrid.Columns>
            </DataGrid>
        </Grid>

这导致列看起来像这样;

enter image description here

我真的无法理解为什么当我使用类似的DataGrid甚至在我想要它的同一页面上时,它们还没有占用剩余的可用空间。我认为这可能与它的父母有关 - 它包含在Grid内但是在玩了一些网格之后我也无法占用空间。

1 个答案:

答案 0 :(得分:0)

在我看来,它发生的原因不是DataGrid,而是你的Layout。例如,这种布局非常有效:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="4*"/>
    </Grid.ColumnDefinitions>
    <DataGrid >
       <DataGrid.Columns>
         <DataGridTextColumn Header="Job ID" Width="*" Binding="{Binding JobID}"/>
         <DataGridTextColumn Header="Job Description" Width="*" Binding="{Binding JobDescription}"/>
    </DataGrid.Columns>
 </DataGrid>

我看到的是:

enter image description here