2010-05-24 4 views
5

Type de question rapide: Est-il possible d'activer un viewstate à partir de XAML? J'ai été seulement capable d'en activer un à partir de CS, en utilisant la méthode VisualStateManager.GotoState(). Cela permettrait de résoudre certains de mes problèmes MVVM si c'était possible.WPF/Silverlight States - Activer à partir de XAML?

Merci

Répondre

7

Si vous connaissez des comportements Blend, les déclencheurs et actions il y a un GoToStateAction qui est une partie de l'espace de noms Microsoft.Expression.Interactivity.Core. Vous devrez faire référence aux assemblages d'interactivité qui font partie du Blend SDK. Une fois que vous avez configuré les références, il est aussi simple que de spécifier le GoToStateAction pour réagir à une sorte de déclencheur ... tout en XAML. Voici un exemple qui déclenche l'action hors de l'événement Loaded en utilisant un EventTrigger:

<UserControl x:Class="SilverlightApplication1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
    xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"> 
    <Grid x:Name="LayoutRoot"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="Loaded"> 
       <ic:GoToStateAction StateName="MyVisualState"/> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
     ... 
    </Grid> 
</UserControl> 

Plus d'infos et tutoriel sur l'action spécifique GoToState here.

EDIT: Cette réponse est spécifique à Silverlight, mais elle ne sait pas si elle est disponible dans WPF.

+0

J'utilise Blend 4, aurais-je encore besoin du Blend 3 SDK? --- Nan. – Peanut

+0

Cela a fonctionné PARFAITEMENT. Merci beaucoup!!! – Peanut

Questions connexes