2013-10-09 1 views
0

스타일링 난은 DataGridColumn 같이 있습니다는 바인딩과 DataGridColumnHeader

<DataGridTextColumn 
    Binding="{Binding 
     Path=Name, 
     UpdateSourceTrigger=PropertyChanged}" 
    HeaderStyle="{StaticResource HeaderWrapped}"> 

    <DataGridTextColumn.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock 
       Text="{Binding 
        Path=DataContext.Name, 
        RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" /> 
     </DataTemplate> 
    </DataGridTextColumn.HeaderTemplate> 
</DataGridTextColumn> 

HeaderWrapped 스타일 컨트롤에 수입되어있는 ResourceDictionary입니다.

<Style x:Key="HeaderWrapped" TargetType="DataGridColumnHeader"> 
    <Setter Property="ContentTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <TextBlock TextWrapping="Wrap" Text="{TemplateBinding Content}" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

응용 프로그램을 실행할 때 헤더 텍스트는 올바르게 바인딩되지만 TextWrapping은 설정되지 않습니다. DataGridTextColumn.HeaderTemplate이 내 ResourceDictionary에서 템플릿을 덮어 쓰는 것 같습니다. ResourceDictionary에서 머리글의 스타일을 유지할 수 있지만 머리글의 Text 속성을 여전히 바인딩 할 수있는 방법이 있습니까?

+0

당신이 내'TextBlock'에서'TextWrapping = "랩"을'넣을 수 없습니다 ''? – Tico

+0

예, 그렇지만 모든 열 머리글에 추가해야합니다. 이상적으로 모든 스타일을 ResourceDictionary에 유지하고 컨트롤의 머리글 텍스트 만 바인딩하고 싶습니다. – ConditionRacer

+0

DataTemplate에 x : Key를 설정하면 비슷한 결과를 얻을 수 있습니다. – Tico

답변

1

기본적으로 머리글에 대한 스타일을 설정 한 다음 머리글에 대해 새 템플릿을 사용하여 잊어 버리라고 말하고 있습니다. 당신은 설정할 수 없습니다 모두 DataGridTextColumn.HeaderStyle.ContentTemplateDataGridTextColumn.HeaderTemplate 나는이 문제에 대한 하나의 해결 방법을 생각할 수 그러나

:

<DataGridTextColumn 
    Binding="{Binding 
     Path=Name, 
     UpdateSourceTrigger=PropertyChanged}" 
    Tag="{Binding 
     Path=DataContext.Name, 
     RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" 
    HeaderStyle="{StaticResource HeaderWrapped}"> 
</DataGridTextColumn> 

<Style x:Key="HeaderWrapped" TargetType="DataGridColumnHeader"> 
    <Setter Property="ContentTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <TextBlock TextWrapping="Wrap" Text="{TemplateBinding Tag}" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
관련 문제