首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定和设置DataGridColumnHeader的样式

绑定和设置DataGridColumnHeader的样式
EN

Stack Overflow用户
提问于 2013-10-09 23:58:46
回答 1查看 514关注 0票数 0

我有一个这样的DataGridColumn:

代码语言:javascript
复制
<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中。它看起来是这样的:

代码语言:javascript
复制
<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属性?

EN

回答 1

Stack Overflow用户

发布于 2013-10-10 03:03:28

你要做的基本上就是首先为标题设置一个样式,然后告诉它忘记它,并为标题使用一个全新的模板。不能同时设置DataGridTextColumn.HeaderStyle.ContentTemplateDataGridTextColumn.HeaderTemplate

但是,我可以想到一个解决此问题的方法:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19276958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档