为DataTrigger的双级分组设置不同的样式

问题描述

|| 我有一个双层分组,并认为我可以使用DataTriggers定义不同的样式。 考虑到GroupStyles.HeaderTemplate将绑定到CollectionViewGroup,我尝试将DataBinding绑定到IsBottomLevel属性。
<GroupStyle>
     <GroupStyle.HeaderTemplate>
          <DataTemplate>
              <TextBlock x:Name=\"GroupName\"
                         Text=\"{Binding Path=Name}\"
                         Foreground=\"Red\" />
                   <DataTemplate.Triggers>
                         <DataTrigger Binding=\"IsBottomLevel\" Value=\"True\" >
                              <Setter TargetName=\"GroupName\" Property=\"Foreground\" Value=\"Blue\" />
                         </DataTrigger>
                    </DataTemplate.Triggers>
            </DataTemplate>
       </GroupStyle.HeaderTemplate>
  </GroupStyle>
我能以某种方式使它工作吗?     

解决方法

        在TextBlock本身的样式中定义触发器,“ 1”通常用于ControlTemplates,然后可以将其删除。 这不是绑定:
Binding=\"IsBottomLevel\"
当然,您应该将其替换为以下内容:
Binding=\"{Binding IsBottomLevel}\"
<TextBlock Text=\"{Binding Name}\">
    <TextBlock.Style>
        <Style TargetType=\"{x:Type TextBlock}\">
            <Setter Property=\"Foreground\" Value=\"Red\" />
            <Style.Triggers>
                <DataTrigger Binding=\"{Binding IsBottomLevel}\" Value=\"True\">
                    <Setter Property=\"Foreground\" Value=\"Blue\" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
如果直接在TextBlock声明中设置红色前景,则由于优先级,触发器将无效。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...