스타일링 난은 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 속성을 여전히 바인딩 할 수있는 방법이 있습니까?
당신이 내'TextBlock'에서'TextWrapping = "랩"을'넣을 수 없습니다 ''? –
Tico
예, 그렇지만 모든 열 머리글에 추가해야합니다. 이상적으로 모든 스타일을 ResourceDictionary에 유지하고 컨트롤의 머리글 텍스트 만 바인딩하고 싶습니다. – ConditionRacer
DataTemplate에 x : Key를 설정하면 비슷한 결과를 얻을 수 있습니다. – Tico