如何更改DataGridColumnHeader的文本

时间:2015-05-15 07:36:18

标签: wpf datagrid datagridcolumnheader

我定义了以下文本列,我想以编程方式替换3个文本块中的文本。任何帮助将不胜感激。

<DataGridTextColumn
    x:Uid="Expiration_DataGridTextColumn"
    Binding="{Binding Expiration}">
    <DataGridColumn.HeaderStyle>
        <Style
            TargetType="DataGridColumnHeader"
            BasedOn="{StaticResource ThreeLineColumnHeaderStyle}">
            <Setter
                Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock
                                x:Uid="Expiration_Header_Line1"
                                Text=""
                                HorizontalAlignment="Center" />
                            <TextBlock
                                x:Uid="Expiration_Header_Line2"
                                Text="Expriation"
                                HorizontalAlignment="Center" />
                            <TextBlock
                                x:Uid="Expiration_Header_Line3"
                                Text=""
                                HorizontalAlignment="Center" />
                        </StackPanel>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGridColumn.HeaderStyle>
</DataGridTextColumn>

1 个答案:

答案 0 :(得分:0)

您可以使用相对源绑定将该文本绑定到任何VM属性。

你应该覆盖HeaderTemplate而不是样式,

<DataGridTextColumn
x:Uid="Expiration_DataGridTextColumn"
Binding="{Binding Expiration}">
                <DataGridColumn.HeaderTemplate>
                        <DataTemplate>
                            <TextBlock Text="YourColumnName" HorizontalAlignment="Center"></TextBlock>
                        </DataTemplate>
                </DataGridColumn.HeaderTemplate>
            </DataGridTextColumn>