(原创)DataGrid多层表头设计

        最近做的项目用到了DataGrid多层表头,问了很多人,自己感觉回答不是很明确,自己总结了一下,希望能够使以后使用的兄弟们少走弯路。

类似于上面的一个情况,乍一看,还以为要通过Table来实现哪,但是相信强大的DataGrid,于是开始寻找方法。一些前辈们的讲解就是TableCellCollection 中添加TableHeaderCell(这应该是基础的内容)。

        我自己的步骤是:现在Table中设计出来结构,然后将双引号变成单引号,在添加到TableHeaderCell.text中就可以了。多复杂的DataGrid表头都可以实现。

       代码下载(Code):http://dutguoyi.cnblogs.com/articles/354546.html

       由于无法上传代码,所以只好用其他的Blog。
       希望对还不会使用DataGrid多层表头设计的兄弟们有所帮助!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
WPF DataGrid 支持多层表头,可以使用 DataGrid 的 ColumnHeaderStyle 属性来自定义表头样式。 首先,你需要定义表头的层次结构。可以使用 DataGrid 的 ColumnGroups 属性来定义多层表头。例如,下面的代码定义了两个层次的表头: ``` <DataGrid.ColumnHeaderStyle> <Style TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <TextBlock Text="{Binding}"/> </DataTemplate> </Setter.Value> </Setter> </Style> </DataGrid.ColumnHeaderStyle> <DataGrid.ColumnGroups> <DataGridGroupHeader x:Name="GroupHeader1" Header="Group 1" FontWeight="Bold"/> <DataGridGroupHeader x:Name="GroupHeader2" Header="Group 2" FontWeight="Bold" ParentGroupHeader="{Binding ElementName=GroupHeader1}"/> </DataGrid.ColumnGroups> ``` 在这个例子中,第一列的表头为 "Group 1",第二列的表头为 "Group 2",它们都是加粗的。第二列的表头是第一列的子表头,所以它们之间有一个缩进。 然后,你需要为每个表头单元格定义样式。可以使用 DataGrid 的 ColumnHeaderStyle 属性来定义默认样式,也可以为每个表头单元格定义不同的样式。例如,下面的代码定义了一个简单的表头样式: ``` <Style x:Key="HeaderCellStyle" TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="Background" Value="#CCCCCC"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="HorizontalContentAlignment" Value="Center"/> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="BorderBrush" Value="#888888"/> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Padding" Value="4"/> </Style> ``` 最后,将表头样式应用到 DataGrid 的每个列上。例如,下面的代码定义了两个列,并将表头样式应用到它们的表头单元格: ``` <DataGrid.Columns> <DataGridTextColumn Header="Column 1" Binding="{Binding Property1}" HeaderStyle="{StaticResource HeaderCellStyle}"/> <DataGridTextColumn Header="Column 2" Binding="{Binding Property2}" HeaderStyle="{StaticResource HeaderCellStyle}"/> </DataGrid.Columns> ``` 这样,你就可以创建一个具有多层表头的 WPF DataGrid 了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值