2013-05-31 40 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}"