Ändern TreeViewItem Kopf durch Trigger
-
21-08-2019 - |
Frage
Mit solchen Style
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Header" Value="Pink"></Setter>
</Trigger>
</Style.Triggers>
</Style>
Ich würde erwarten, dass der Text des erweiterten TreeViewItems „Pink“ zu sein, aber nichts gesetzt tatsächlich. Wenn ich auf Property = „Hintergrund“ statt ändern, es funktioniert. Wie Header unterscheidet sich von Hintergrund
Lösung
Ich denke, ich werde weitere Informationen benötigen diese mehr vollständig zu beantworten. Allerdings, wenn ich erraten, ich würde sagen, Sie sind wahrscheinlich die Header-Eigenschaft auf dem TreeViewItem explizit wie diese Einstellung:
<TreeView>
<TreeViewItem
Header="Blue"/>
</TreeView>
Und in diesem Fall ist es Einstellung wird ausdrücklich außer Kraft setzt alles, was Sie im Stil setzen.
Andere Tipps
Um näher auf ascalonx Antwort:
kopiert von Josh Smith Blog:
Es gibt einen gut definierten Satz von Regeln die intern von WPF wird verwendet, um herauszufinden, was den realen Wert eines DP ist. Hier ist eine kurze Zusammenfassung der Vorrangsregeln verwendet wird, wenn Auflösen des Wertes eines DP (von höchste zur niedrigsten Priorität):
- Property System Zwang
- Aktive Animationen oder Animationen mit einem Hold-Verhalten
- Lokale Wert
- TemplatedParent template
- Style Trigger
- Template Auslöser
- Style Setter
- Thema Stil
- Vererbung
- Standardwert aus der Abhängigkeit Eigenschaft Metadaten
Wenn Sie also explizit die Header-Eigenschaft festgelegt, (oder wenn Sie binden es glaube ich), Sie haben dieses Problem.