2013-05-31 4 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

Для доступа к ресурсу вы должны использовать StaticResource или DynamicResource ключевые слова

Изменение:

HeaderStyle="dgColumnHeaderStyle" 

To:

HeaderStyle="{StaticResource dgColumnHeaderStyle}" 
Смежные вопросы