2011-06-13 27 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

相關問題