Changer TreeViewItem tête par déclencheur
-
21-08-2019 - |
Question
Avoir un tel style
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Header" Value="Pink"></Setter>
</Trigger>
</Style.Triggers>
</Style>
J'attends le texte des TreeViewItems étendus pour être « rose », mais rien mis réellement. Si je change de propriété = « Arrière-plan » à la place, cela fonctionne. Comment En-tête diffère de Contexte
La solution
Je pense que je vais avoir besoin de plus d'informations pour répondre à cette plus complètement. Cependant, si je dois deviner, je dirais que vous configurez probablement la propriété d'en-tête sur le TreeViewItem explicitement comme ceci:
<TreeView>
<TreeViewItem
Header="Blue"/>
</TreeView>
Et, dans ce cas, la mise en elle explicitement remplacer tout ce que vous mettez dans le style.
Autres conseils
Pour des précisions sur la réponse de ascalonx:
blog Josh Smith:
Il y a un ensemble bien défini de règles qui est utilisé en interne par WPF comprendre ce que la valeur réelle d'un DP est. Voici un bref résumé de la règles de préséance utilisées lorsque la résolution de la valeur d'un DP (à partir de priorité la plus basse à la plus élevée):
- la contrainte du système de propriété
- animations actives, ou des animations avec un comportement Hold
- Valeur locale
- template TemplatedParent
- déclencheurs de style
- déclencheurs de modèle
- setters de style
- style thème
- L'héritage
- Valeur par défaut de la dépendance métadonnées de propriété
Donc, si vous définissez explicitement la propriété d'en-tête, (ou si vous lient, je crois), vous avez ce problème.