2010-03-10 4 views
11

En supposant que la liaison est correcte et que les fichiers d'image sont là où ils devraient être, quelqu'un peut-il savoir pourquoi l'image dans le xaml ci-dessous ne changera pas lorsque le déclencheur sera vrai?wpf datatrigger sur une source d'image

Cheers,
Berryl

  <Image Source="..\..\Images\OK.png" Grid.Column="2" Stretch="None"> 
       <Image.Style> 
        <Style> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}" Value="True"> 
           <Setter Property="Image.Source" Value="..\..\Images\Error.png"/> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </Image.Style> 
      </Image> 

Répondre

31

Essayez ce qui suit ...

  • Régler le TargetType = "{x: Type image}" sur le style
  • Modifier la propriété du setter à Propriété = "Source"

La façon dont votre chemin de propriété est cur Défini récemment, il cherche une propriété sur Image appelée Image (qui n'existe pas) puis dans ce quelque chose appelé Source.

En outre, supprimez l'attribut Source de la balise Image en haut. Cela annulera tout ce qui est appliqué par le style. Vous pouvez le déplacer à un autre DataTrigger ou vous pouvez le mettre dans un setter normal comme si:

<Image Grid.Column="2" Stretch="None"> 
    <Image.Style> 
     <Style TargetType="{x:Type Image}"> 
      <Setter Property="Source" Value="..\..\Images\OK.png" /> 
      <Style.Triggers> 
       <DataTrigger Value="True" Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}"> 
        <Setter Property="Source" Value="..\..\Images\Error.png"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Image.Style> 
</Image> 

Votre timing est intéressant. Je suis sur le point d'afficher quelque chose sur mon blog à propos d'un contrôle qui fait quelque chose de très similaire à cela mais dans une syntaxe beaucoup plus concise.

+0

suh-weet ce truc arrive à peu près en octets. Merci! – Berryl

+0

plusieurs Salut 5 ... je ne sais pas pourquoi c'était si difficile à faire, mais votre exemple m'a aidé à attribuer. –

Questions connexes