DataGrid上的HeaderTemplate

时间:2014-06-12 19:07:15

标签: c# wpf datagrid datatemplate

我创建了一个DataTemplate,用于DataGrid的HeaderTemplate。我想让模板获取Header属性文本,该文本将设置为列的名称,以便它可以将其用于DataTemplate中控件的文本。

这是DataTemplate

<DataTemplate x:Key="AncillaryHeaderTemplate">
    <Border Background="Transparent" BorderThickness="0" Height="60" Name="ab">
        <TextBlock TextAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap"
                   Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                        AncestorType={x:Type DataGridTextColumn}}, Path=Header, Mode=TwoWay}" />
    </Border>
</DataTemplate>

这是DataGrid

    <DataGrid Name="AncillaryGrid">

        <DataGrid.Columns>
            <DataGridTextColumn Header="Account" HeaderStyle="{StaticResource AncillaryHeaderStyle}" HeaderTemplate="{StaticResource AncillaryHeaderTemplate}" />

有没有更好的方法来获得DataTemplate并将列的标题传递给它或者我是否接近这个错误?

1 个答案:

答案 0 :(得分:2)

您只需执行以下操作,因为标头模板的数据上下文是标头的内容(即DataGridTextColumn.Header属性的值):

<TextBlock TextAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap"
    Text="{Binding }" />