2010-12-10 5 views
8

Also sagen wir, ich möchte eine Storyboard Animation spielen, wenn im ViewModel etwas Logik passiert. Aber das StoryBoard lebt auf der View, und ich habe keinen Verweis auf die View aus dem ViewModel. Wie kann ich dann das Storyboard spielen?WPF: Wie spielt man ein Storyboard in MVVM?

Antwort

6

Sie können die Animation in der Ansicht mit einem Datentrigger starten.

Etwas wie folgt aus:

...<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 erklärt, wie man das in dem Buch Advanced MVVM tut. Die von ihm verwendete Beispielanwendung heißt BubbleBurst und lautet available on Codeplex.

Ich empfehle das Buch. Es ist pragmatisch und praktisch.

+9

so dass Sie mich in ein Buch beziehen? Wenn Sie die Antwort nicht wissen, dann sagen Sie einfach, dass Sie nicht wissen;) – foreyez

+5

... ein weiteres Kind aus der [Millennial Generation] (http://en.wikipedia.org/wiki/Generation_Y): p –

+4

_ [ Ihre Antwort ist in einem anderen Schloss: Wann ist eine Antwort keine Antwort?] (Http://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-ansanswer -nicht-eine-Antwort) _ – MickyD