DataGridColumnHeader样式错误

时间:2013-05-31 23:09:52

标签: wpf xaml datagridcolumnheader

我尝试过内联样式,效果很好。

<DataGrid AutoGenerateColumns="False" AlternatingRowBackground="{x:Null}" DataContext="{StaticResource UserGroups}" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" HeaderTemplate="{StaticResource headerTemplate}" Binding="{Binding Path=Name}"
                    <DataGridTextColumn.HeaderStyle>
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Bottom"/>
            </Style>
            </DataGridTextColumn.HeaderStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

但是我想要资源中的样式,所以我尝试了这个不起作用。

<UserControl.Resources>

    <DataTemplate x:Key="headerTemplate">
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom"  Text="{Binding}"/>
    </DataTemplate>

    <Style x:Key="dgColumnHeaderStyle" TargetType="DataGridColumnHeader">
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Bottom"/>
    </Style>
</UserControl.Resources>

<DataGrid AutoGenerateColumns="False" AlternatingRowBackground="{x:Null}" DataContext="{StaticResource UserGroups}" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" HeaderStyle="dgColumnHeaderStyle" HeaderTemplate="{StaticResource headerTemplate}" Binding="{Binding Path=Name}"/>
    </DataGrid.Columns>
</DataGrid>

可能很简单,但我刚刚开始使用这个控件。 如何在第二个示例中修复样式以使其有效?

1 个答案:

答案 0 :(得分:1)

要访问资源,您必须使用StaticResourceDynamicResource关键字

变化:

HeaderStyle="dgColumnHeaderStyle"

要:

HeaderStyle="{StaticResource dgColumnHeaderStyle}"