<ListBox.ItemTemplate>
<DataTemplate>
<Grid x:Name="grid">
<Grid.Background>
<SolidColorBrush x:Name="backgroundBrush" Color="Transparent" Opacity="0.1"/>
</Grid.Background>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsExpanded}" Value="True">
<Setter TargetName="backgroundBrush" Property="Color" Value="Green" />
</DataTrigger>
<Trigger SourceName="grid" Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="backgroundBrush"
Storyboard.TargetProperty="Color"
To="White" Duration="0:0:1.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="backgroundBrush"
Storyboard.TargetProperty="Color"
AccelerationRatio="1" Duration="0:0:1.5" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
Kompiliert nicht mit Fehler 'Kann das Triggerziel nicht finden' backgroundBrush '.'WPF DataTrigger kann Triggerziel nicht finden
Wenn ich den DataTrigger entferne, wird er kompiliert und funktioniert. Wenn ich den DataTrigger so ändere, dass er TargetName="grid" Property="Background"
verwendet, wird er kompiliert und funktioniert (aber ohne die gewünschte Deckkraft).
Wohin gehe ich falsch?
+1, gute Frage. Ich dachte, ich würde WPF verstehen, aber ich habe keine Ahnung, warum das nicht funktioniert ... – Heinzi
(später Kommentar, aber doch ...) Sie ändern den Wert einer Farbe, wenn Sie eigentlich zwei verschiedene Farben haben sollen (definiert als lokale Ressourcen) und tausche dann zwischen ihnen in den Auslösern der Auslöser. Ich würde denken, dass dies die Ursache des Problems ist (obwohl es getestet werden sollte, um sicher zu sein). – heltonbiker