Mudança TreeViewItem Header por gatilho
-
21-08-2019 - |
Pergunta
Tendo tais Estilo
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Header" Value="Pink"></Setter>
</Trigger>
</Style.Triggers>
</Style>
Eu esperaria o texto das TreeViewItems expandidos para ser "Pink", mas nada definido na verdade. Se eu mudar para a propriedade = "fundo" em vez disso, ele funciona. Como Header difere de Fundo ?
Solução
Eu acho que vou precisar de mais informações para responder a esta de forma mais completa. No entanto, se eu tenho que adivinhar, diria que provavelmente você está definindo a propriedade de cabeçalho no TreeViewItem explicitamente como esta:
<TreeView>
<TreeViewItem
Header="Blue"/>
</TreeView>
E, neste caso, defini-lo explicitamente irá substituir qualquer coisa que você colocar no estilo.
Outras dicas
Para elaborar a resposta de ascalonx:
blogue de Josh Smith:
Há um conjunto definido pelo bem de regras que é usado internamente para pelo WPF descobrir qual é o valor real de um DP é. Aqui está um resumo breve do regras de precedência usado quando resolver o valor de um DP (a partir de maior para a menor prioridade):
- Sistema de Propriedade coerção
- animações ativo ou animações com um comportamento Espera
- valor local
- TemplatedParent template
- gatilhos Estilo
- Template gatilhos
- Estilo setters
- estilo tema
- Inheritance
- O valor padrão da dependência propriedade de metadados
Então, se você definir explicitamente a propriedade de cabeçalho, (ou se você ligá-la eu acho), você tem esse problema.