2011-03-08 6 views
6

Tengo una propiedad booleana llamada IsLoginWrong, quiero reproducir una animación del guión gráfico si el IsLoginWrong es verdadero. (IsLoginWrong hace un evento OnPropertyChanged, entonces sé que el enlace está bien) Pero estoy teniendo dificultades con la sintaxis. Esto ni siquiera podría tener razón, pero creo que datatriggers sólo pueden vivir en estilos ...WPF/Silverlight: cómo DataTrigger una animación de guión gráfico en MVVM?

<UserControl.Style> 
    <Style> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="True"> 
       <DataTrigger.EnterActions> 
        <BeginStoryboard Storyboard="{StaticResource LoginWrong}"/> 
       </DataTrigger.EnterActions> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Style> 

Pero esto produce una excepción "Un árbol en un guión gráfico de estilo no puede especificar un TargetName" ... beause estilos Canno se refieren a los artículos específicamente ... impresionante. Entonces, ¿cómo hago lo que intento hacer? (Juego de animación si un booleanos cambios en MVVM)

, gracias

+0

Mirando hacia atrás en esto 5 años después, mvvm fue probablemente la mayor pérdida de tiempo en mi carrera. es mejor hacer esto en código. – foreyez

Respuesta

11

dentro de un estilo que no se puede hacer referencia a un nombre de guión gráfico. Por lo que la forma en que tengo que trabajar es para empujar el guión gráfico en el estilo actual:

<UserControl.Style>  
    <Style>   
     <Style.Triggers>    
      <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="True">      
       <DataTrigger.EnterActions>      
        <BeginStoryboard> 
         <Storyboard> 
          .... PUT YOUR ACTUAL STORY BOARD IN HERE ... 
         </Storyboard> 
        </BeginStoryboard> 
       </DataTrigger.EnterActions>    
      </DataTrigger>   
     </Style.Triggers>  
    </Style> 
</UserControl.Style> 

Ahora DataTriggers o bien se puede poner en estilos o plantillas de control, por lo que podría ser una manera más agradable de hacer esto con las plantillas de control . pero esto es lo que se me ocurrió por el momento.

Cuestiones relacionadas