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属性?
你能不能把'TextWrapping =“包装”'的'TextBlock'内''? –
Tico
是的,但是我不得不将它添加到每个列标题。理想情况下,我想将所有样式保留在ResourceDictionary中,并仅绑定控件中的标题文本。 – ConditionRacer
如果你为你的DataTemplate设置一个x:Key,你会得到类似的结果。 – Tico