Festlegen verschiedener Stile für die Gruppierung auf zwei Ebenen mit DataTrigger
-
27-10-2019 - |
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?
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