2011-06-13 28 views
0

我有一个双层次分组,并认为我可以使用DataTriggers定义不同的样式。使用DataTrigger设置不同样式的双层次分组

认为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> 

我可以得到这个工作吗?

回答

1

在TextBlock本身的样式中定义触发器,TargetName通常用于ControlTemplates,那么您可以放弃它。

这是不是一个绑定:

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中直接设置红色前景:

Binding="IsBottomLevel" 

您应该当然替换为以下由于precedence,声明触发器将不起作用。

+0

辉煌,谢谢。 – 2011-06-14 10:08:30

相关问题