首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTrigger in HierarchicalDataTemplate in HierarchicalDataTemplate not working - TreeView

DataTrigger in HierarchicalDataTemplate in HierarchicalDataTemplate not working - TreeView
EN

Stack Overflow用户
提问于 2016-06-02 15:03:32
回答 1查看 1.2K关注 0票数 0

我有一个DataTrigger来根据绑定属性设置文本框的背景。

以下是xaml的简化版本:

代码语言:javascript
复制
<TreeView  >
<TreeViewItem Header="Things" >
    <TreeViewItem.Resources>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsDirty}" Value="True">
                    <Setter Property="Background" Value="LightGray" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
        <HierarchicalDataTemplate DataType="{x:Type local:Type1}" ItemsSource="{Binding Children, Mode=OneWay}">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}" Margin="6,0,6,0" />
                <TextBlock Text="{Binding IsDirty}" Margin="6,0,6,0" />
                <i:Interaction.Behaviors>
                    <dragDrop:FrameworkElementDropBehavior DragEffect="Move"  />
                </i:Interaction.Behaviors>
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeViewItem.Resources>
</TreeViewItem>

我添加了一个TextBlock来显示IsDirty属性的值;如果是这样的话,背景将保持不变。

我尝试过将样式移到HierarchicalDataTemplate.Resources上,但这并没有什么不同。

我在看什么?

谢谢--

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 17:06:07

这是因为针对非从Control派生的类型的隐式样式不会跨越模板边界,也就是说,除非在模板的范围内定义了它们,否则不会在模板中应用它们。这是个很好的帖子解释了它是如何工作的,为什么它是这样工作的。

为了跨越模板边界,您应该使用从Control派生的类型(例如,Label),而不是TextBlock,并定义针对该类型的隐式样式。

否则,您可以通过将样式移到模板的资源字典中,将样式放在所讨论的模板的作用域中:

代码语言:javascript
复制
<HierarchicalDataTemplate (...)>
    <HierarchicalDataTemplate.Resources>
        <Style TargetType="{x:Type TextBlock}">
            (...)
        </Style>
    </HierarchicalDataTemplate.Resources>
    (...)
</HierarchicalDataTemplate>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37595524

复制
相关文章

相似问题

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