2010-03-10 17 views
11

Suponiendo que el enlace es correcto y los archivos de imagen están donde deberían estar, ¿alguien puede detectar por qué la imagen en el xaml a continuación no cambiará cuando el desencadenador se evalúe como verdadero?wpf datatrigger en una fuente de imagen

Saludos,
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> 

Respuesta

31

Pruebe lo siguiente ...

  • Ajuste el TargetType = "{x: Tipo de imagen}" en el estilo de
  • Cambio del colocador Propiedad a Property = "Fuente"

La forma en que se ejecuta su propiedad rently defined, está buscando una propiedad en Image llamada Image (que no existe) y luego dentro de ese algo llamado Source.

Además, elimine el atributo Fuente de la etiqueta Imagen en la parte superior. Esto anulará lo que sea que aplique el estilo. Puede cambiarla a otro DataTrigger o puede ponerlo en una incubadora normal de este modo:

<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> 

Su tiempo es interesante. Estoy a punto de publicar algo en mi blog sobre un control que hace algo muy similar a esto pero en una sintaxis mucho más concisa.

+0

suh-weet este material viene en bits de tamaño byte hasta ahora. ¡Gracias! – Berryl

+0

múltiples Hi 5's ... no sé por qué fue tan difícil de hacer, pero tu ejemplo me ayudó a asignar. –

Cuestiones relacionadas