2013-05-31 43 views
0

我已经尝试了一种可以正常工作的内联样式。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

要访问的资源,你必须使用StaticResourceDynamicResource关键词

变化:

HeaderStyle="dgColumnHeaderStyle" 

要:

HeaderStyle="{StaticResource dgColumnHeaderStyle}"