在WPF DataGridColumn HeaderStyle中绑定

时间:2013-01-31 16:54:21

标签: wpf wpfdatagrid

我将以下样式应用于我的DataGridColumns(通过他们的HeaderStyle属性):

    <Style x:Key="MyHeaderStyle" TargetType="DataGridColumnHeader">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <TextBlock Text="???" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

相同的样式应用于每一列,但我需要一些方法来改变内容(例如TextBlock文本),具体取决于它是哪一列。我相信DataGridColumnHeader没有自己的绑定,所以我怎么能实现这个呢?列数会有所不同,因此我不能为每个列创建单独的样式。

1 个答案:

答案 0 :(得分:1)

使用TemplateBinding - 它允许您伸出ControlTemplate以使用此控件模板获取有关实际控件的信息。我的示例将文本块绑定到以DataGridColumHeader的正常方式声明的内容。

<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DataGridColumnHeader">
                <TextBlock Text="{TemplateBinding Content}"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>