2010-12-10 15 views
8

Por lo tanto, supongamos que quiero reproducir una animación de guión gráfico si ocurre alguna lógica en ViewModel. Pero el StoryBoard vive en la Vista, y no tengo una referencia a la Vista desde el ViewModel. ¿Cómo puedo ir y jugar el guión gráfico?WPF: ¿Cómo se juega un guión gráfico en MVVM?

Respuesta

6

Puede iniciar la animación en la vista utilizando un control de datos.

Algo como esto:

...<ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Value.Name}" Padding="5"> 
          <TextBlock.Style> 
           <Style> 
            <Style.Triggers> 
             <DataTrigger Binding="{Binding Value.StartAnimation}" Value="True"> 
              <DataTrigger.EnterActions> 
               <BeginStoryboard> 
                <Storyboard 
                 Storyboard.TargetProperty="FontSize" 
                 Duration="0:0:0.5"> 
                 <DoubleAnimation From="10" To="30" AutoReverse="True" /> 
                </Storyboard> 
               </BeginStoryboard> 
              </DataTrigger.EnterActions> 
             </DataTrigger> 
            </Style.Triggers> 
           </Style> 
          </TextBlock.Style> 
         </TextBlock> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
... 
0

Josh Smith explica cómo hacerlo en el libro Advanced MVVM. La aplicación de ejemplo que usa se llama BubbleBurst, y es available on Codeplex.

Recomiendo encarecidamente el libro. Es pragmático y práctico.

+9

Entonces me estás haciendo referencia a un libro? si no sabe la respuesta, simplemente diga que no sabe;) – foreyez

+5

... otro niño de la [Generación Milenaria] (http://en.wikipedia.org/wiki/Generation_Y): p –

+4

_ [ Su respuesta está en otro castillo: ¿cuándo una respuesta no es una respuesta?] (Http://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer -no-una-respuesta) _ – MickyD

Cuestiones relacionadas