我有以下用于创建数据网格的XAML:
<DataGrid CanUserAddRows="False" HorizontalAlignment="Left" Name="Test" AutoGenerateColumns="False" Height="164" Margin="205,264,0,0" VerticalAlignment="Top" Width="511">
<DataGrid.Columns>
<DataGridTextColumn CanUserSort="False" Binding="{Binding Description, Mode=TwoWay}" Header="Description" Width="6*" IsReadOnly="True" />
<DataGridTemplateColumn Width="2.6*" x:Name="Parent" >
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate >
<Grid ShowGridLines="False" Width="{Binding ElementName=Parent,Path=Width}" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<TextBlock Text="Initial " Grid.Column="0" />
<TextBlock Text="Date " Grid.Column="1" />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridCheckBoxColumn CanUserSort="False" Binding="{Binding StepComplete, Mode=TwoWay}" Header="Completed" Width="1.5*" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
我已经创建了一个带有DataTemplate的DataGridTemplateColumn.HeaderTemplate,因为我想创建一个多标题列。我的问题是我无法让DataTemplate拉伸/填充其父单元格。我在下面添加了一张图片来展示我的问题。请注意初始日期文本周围突出显示的区域,因为这是DataTemplate边框。有谁知道如何更改DataTemplate以填充其父单元格?
谢谢Callum
答案 0 :(得分:2)
要设置标题单元格对齐,您必须使用ColumnHeaderStyle:
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</DataGrid.ColumnHeaderStyle>
我在您的代码中看到两个问题:
2.6*
(DataGridLength)。您无法将2.6*
设置为Grid.Width,因为它不是有效的双值。