首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF,请问DataGrid的复合表头是如何做的

2013-09-07 
WPF,请教DataGrid的复合表头是怎么做的?DataGrid控件的复合表头是怎么做的,各位有没有资料。我给列写了数据

WPF,请教DataGrid的复合表头是怎么做的?
DataGrid控件的复合表头是怎么做的,各位有没有资料。
我给列写了数据模板。如下:


<Window.Resources>
    <Style x:Key="标题1">
        <Setter Property="DataGridColumnHeader.ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Grid HorizontalAlignment="Left">
                        <Grid.RowDefinitions>
                            <RowDefinition></RowDefinition>
                            <RowDefinition></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition></ColumnDefinition>
                            <ColumnDefinition></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <Border Grid.ColumnSpan="2" BorderBrush="Black" BorderThickness="0,0,0,1">
                            <TextBlock Text="姓名" TextAlignment="Center" VerticalAlignment="Center"/>
                        </Border>
                        <Border Grid.Row="1" BorderBrush="Black" BorderThickness="0,0,1,0">


                            <TextBlock Text="大名" TextAlignment="Center" VerticalAlignment="Center" />
                        </Border>
                        <TextBlock Text="小名" Grid.Row="1" Grid.Column="1" TextAlignment="Center" VerticalAlignment="Center"/>
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>
<Grid HorizontalAlignment="Left" Height="557" VerticalAlignment="Top" Width="483">
    <DataGrid HorizontalAlignment="Left" VerticalAlignment="Top" Height="150" Width="332" Margin="29,29,0,0">
        <DataGrid.Columns>
            <DataGridTextColumn HeaderStyle="{StaticResource 标题1}"/>
            <DataGridTextColumn Header="年龄"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>



WPF,请问DataGrid的复合表头是如何做的

看起来还像模像样的,不过,有个问题诶,只能选择整个"姓名"列,不能单独选择"大名"、"小名"列............各位大师,请教一下,复合表头是怎么做的。谢谢

[解决办法]
只能选择整个"姓名"列,不能单独选择"大名"、"小名"列.
这说明实际上还是一列。如果要能单独选择的话,就是两列了。

这里提供一种解决方案:
1. 把DataGrid的表头隐藏掉。可设置ColumnHeaderHeight为0.
2. 在DataGrid的上方,用Grid组合成一个假的表头,这个表头对你就可以随意设置合并了。列的宽度可以绑定到DataGrid中列的宽度。
------解决方案--------------------


http://social.msdn.microsoft.com/Forums/vstudio/en-US/1e414159-70f6-4be3-9be5-56e4f3278366/wpf-multicolumn-super-header


[解决办法]
参考:http://q.cnblogs.com/q/31366/

热点排行