我希望我的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>
这导致列看起来像这样;
我真的无法理解为什么当我使用类似的DataGrid
甚至在我想要它的同一页面上时,它们还没有占用剩余的可用空间。我认为这可能与它的父母有关 - 它包含在Grid
内但是在玩了一些网格之后我也无法占用空间。
答案 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>
我看到的是: