2010-07-01 6 views
15

J'ai un TreeView avec un ToggleButton (ExpanderButton). Le bouton bascule a deux images (une pour l'expansion et une autre quand pas). Cependant quand je sélectionne un TreeViewItem je le surligne avec une couleur différente et je voudrais changer la couleur des images aussi bien (j'ai les mêmes dans l'autre couleur).Comment définir un déclencheur sur un enfant à une propriété parente?

Problème est je ne sais pas comment définir une propriété de déclencheur sur le ToggleButton à la propriété IsSelected sur TreeViewItem.

Des idées?

+0

Bien DataBinding avec RelativeSource est la bonne façon de procéder. Trouvé quelques secondes après que j'ai posté si j'avais cherché. Je n'ai juste pas utilisé la bonne phrase de recherche. –

Répondre

30

Ici, si quelqu'un d'autre en a besoin.

<ControlTemplate TargetType="ToggleButton"> 
       <Image Name="ExpanderImage" Height="24" Width="24" Source="..\Images\Icons\32x32\Blue\Open.png" /> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsChecked" Value="True"> 
         <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Blue\Close.png" /> 
        </Trigger> 
        <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True"> 
         <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Open.png" /> 
        </DataTrigger> 
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}" Value="True" /> 
          <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True" /> 
         </MultiDataTrigger.Conditions> 
         <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Close.png" /> 
        </MultiDataTrigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
+1

exactement ce que je cherchais merci –

Questions connexes