Frage

Ich habe eine zweistufige Gruppierung und dachte, ich könnte mit DataTriggers verschiedene Stile definieren.

Da ich dachte, dass GroupStyles.HeaderTemplate an CollectionViewGroup binden würde, habe ich versucht, DataBinding an die IsBottomLevel-Eigenschaft zu binden.

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

Kann ich das irgendwie zum Laufen bringen?

War es hilfreich?

Lösung

Definieren Sie Ihren Trigger im Stil des TextBlocks selbst. TargetName ist normalerweise für ControlTemplates, dann können Sie diesen einfach löschen.

Dies ist keine Bindung:

Binding="IsBottomLevel"

Sie sollten es natürlich durch Folgendes ersetzen:

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>

Wenn Sie den roten Vordergrund direkt in der TextBlock-Deklaration festlegen, hat der Trigger aufgrund von Vorrang .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top