2009-07-25 10 views

Antwort

2

Ein Weg dazu besteht darin, eine Eigenschaft im View-Modell namens IsLoadingData zu haben. Sie können es dann mithilfe eines BooleanToVisibilityConverter an die Visibility-Eigenschaft eines Steuerelements binden, das die Animation hostet.

Visibility={Binding 
    Path=IsLoadingData, 
    Converter={StaticResource BooleanToVisibilityConverter}} 

kann Diese Steuerung dann eine Control verwenden, um ein Storyboard starten die Animation, wenn die VisibilityProperty auf true gesetzt ist enthalten.

<ControlTemplate.Triggers> 
    <Trigger Property="IsVisible" Value="True"> 
     <Trigger.EnterActions> 
      <BeginStoryboard 
       x:Name="Storyboard0" 
       Storyboard="{StaticResource Animation0}" 
       /> 
     </Trigger.EnterActions> 
    </Trigger> 
</ControlTemplate.Triggers> 

Für eine Probe dieser Animation meine blog post die volle Quelle enthält, sehen Sie sich bitte.

1

Hoffentlich haben Sie möglicherweise ein DataTemplate für das Objekt anzeigen möchten. Stellen Sie sicher, dass Sie bereits eine Empty-Instanz derselben Instanz an die Benutzerschnittstelle gebunden haben, sodass DataTemplate vor dem Laden der Daten instanziiert wurde. Lassen Sie das Objekt eine IsLoaded/IsRefreshed-Eigenschaft haben. Dann können Sie DataTrigger für die DataTemplate schreiben, um die Lade- (oder Datenaktualisierungs-) Animation zu starten und zu stoppen, während IsLoaded von der VM wechselt. Wenn dies zutrifft, können Sie die Animationsvisualisierung reduzieren (oder eine langsame Überblendungsanimation), so dass alle Daten vorliegen schön angezeigt.

Ich habe ein altes Blog somethig ähnlichen hier http://jobijoy.blogspot.com/2009/07/easy-way-to-update-all-ui-property.html, Noch ein Tipp zu tun, die nützlich sein könnten, zu Ihnen, mit null NotifypropertyChanged Ereignisse Raise als PropertyChangedEventArgs all Property Bindungen des Datatemplate erzählen zu aktualisieren.

Verwandte Themen