侧边栏壁纸
  • 累计撰写 3 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

WPF 使用DataGrid合并表头

启名
2025-07-03 / 0 评论 / 0 点赞 / 15 阅读 / 0 字

效果

xmal 代码

<Grid>
    <DataGrid
        d:ItemsSource="{d:SampleData}"
        AutoGenerateColumns="False"
        BorderThickness="0">
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="HorizontalAlignment" Value="Stretch" />
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </DataGrid.ColumnHeaderStyle>
        <DataGrid.Columns>
            <DataGridTextColumn
                Width="*"
                Binding="{Binding ID}"
                Header="ID"
                IsReadOnly="True" />
            <DataGridTemplateColumn Width="*">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <TextBlock
                                Grid.ColumnSpan="4"
                                Text="测试1"
                                TextAlignment="Center" />
                            <UniformGrid
                                Grid.Row="1"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock
                                    Grid.ColumnSpan="2"
                                    Text="测试1-1"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="3"
                                    Grid.ColumnSpan="2"
                                    Text="测试1-2"
                                    TextAlignment="Center" />
                            </UniformGrid>

                            <UniformGrid
                                Grid.Row="2"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock Text="num1" TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="1"
                                    Text="num2"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="2"
                                    Text="num3"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="4"
                                    Text="num4"
                                    TextAlignment="Center" />
                            </UniformGrid>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <UniformGrid VerticalAlignment="Center" Rows="1">
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                        </UniformGrid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="*">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <TextBlock
                                Grid.ColumnSpan="4"
                                Text="测试2"
                                TextAlignment="Center" />
                            <UniformGrid
                                Grid.Row="1"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock
                                    Grid.ColumnSpan="2"
                                    Text="测试2-1"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="3"
                                    Grid.ColumnSpan="2"
                                    Text="测试2-2"
                                    TextAlignment="Center" />
                            </UniformGrid>

                            <UniformGrid
                                Grid.Row="2"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock Text="num1" TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="1"
                                    Text="num2"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="2"
                                    Text="num3"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="4"
                                    Text="num4"
                                    TextAlignment="Center" />
                            </UniformGrid>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <UniformGrid VerticalAlignment="Center" Rows="1">
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                        </UniformGrid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="*">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <TextBlock
                                Grid.ColumnSpan="4"
                                Text="测试3"
                                TextAlignment="Center" />
                            <UniformGrid
                                Grid.Row="1"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock
                                    Grid.ColumnSpan="2"
                                    Text="测试3-1"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="3"
                                    Grid.ColumnSpan="2"
                                    Text="测试3-2"
                                    TextAlignment="Center" />
                            </UniformGrid>

                            <UniformGrid
                                Grid.Row="2"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock Text="num1" TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="1"
                                    Text="num2"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="2"
                                    Text="num3"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="4"
                                    Text="num4"
                                    TextAlignment="Center" />
                            </UniformGrid>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <UniformGrid VerticalAlignment="Center" Rows="1">
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                        </UniformGrid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="*">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <TextBlock
                                Grid.ColumnSpan="4"
                                Text="测试4"
                                TextAlignment="Center" />
                            <UniformGrid
                                Grid.Row="1"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock
                                    Grid.ColumnSpan="2"
                                    Text="测试4-1"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="3"
                                    Grid.ColumnSpan="2"
                                    Text="测试4-2"
                                    TextAlignment="Center" />
                            </UniformGrid>

                            <UniformGrid
                                Grid.Row="2"
                                Grid.ColumnSpan="4"
                                Rows="1">
                                <TextBlock Text="num1" TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="1"
                                    Text="num2"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="2"
                                    Text="num3"
                                    TextAlignment="Center" />
                                <TextBlock
                                    Grid.Column="4"
                                    Text="num4"
                                    TextAlignment="Center" />
                            </UniformGrid>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <UniformGrid VerticalAlignment="Center" Rows="1">
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                            <TextBlock
                                Margin="5,0,5,0"
                                Text="{Binding value}"
                                TextAlignment="Center" />
                        </UniformGrid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

0

评论区