0

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

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

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

4

1 回答 1

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>
于 2013-02-01T00:34:52.933 回答