IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Lancer un storyboard en MVVM


Sujet :

Windows Presentation Foundation

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut Lancer un storyboard en MVVM
    Salut
    J'ai un storyboard dans ma View
    Comment faire pour la lancer à partir de mon ViewModel ?

    Merci

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Via un trigger bindé sur une propriété de ton viewmodel.

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Via un message déclenché depuis ton ViewModel et intercepté dans ta vue, qui se chargera ensuite de démarrer ton Storyboard.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Je débute, je n'ai pas trop compris comment faire.
    Avez-vous un petit exemple, s'il vous plait ?

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     <UserControl.Resources>
     
            <Storyboard TargetName="arc" AutoReverse="False"
                        x:Key="myStory">
          <Codedustory />
    </Storyboard>
     <UserControl.Resources>
    <UserControl.Triggers>
            <EventTrigger RoutedEvent="?????" SourceName="??????">
                <BeginStoryboard Storyboard="{StaticResource myStory}" />
            </EventTrigger>
     
        </UserControl.Triggers>

  5. #5
    Invité
    Invité(e)
    Par défaut
    La meilleure solution est celle proposée par Thomas.
    Si t'as des problèmes de compréhension du MVVM, le toolkit MVVM Light est un début pour commencer et de plus propose la classe Messenger qui te permet de communiquer assez facilement avec ta vue.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Je veux bien faire comme Thomas a dit, mais je dois utiliser les datatrigger ?
    Autre chose ?
    Un petit morceau de code par exemple ?

  7. #7
    Membre habitué
    Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 99
    Points : 152
    Points
    152
    Par défaut
    J'ai rédigé un article y'a pas longtemps qui traite de ça justement :
    http://blog.lordinaire.fr/2011/05/16...-le-viewmodel/
    Cette réponse vous a aidé ?
    Problème résolu ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    J'ai l'impression qu'il me manque des dll pour suivre ton tutos.

    Ceci ne marche pas
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
     xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"


    Donc les balises associés ne sont pas dispos.
    Est ce que cet exemple marce aussi en WPF ?
    Je fais du 3.5

  9. #9
    Membre habitué
    Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 99
    Points : 152
    Points
    152
    Par défaut
    L'exemple marche aussi bien pour Silverlight que pour WPF, il te manque juste des références dans ton projet. Est-ce que tu utilises Blend 4 ? Dans le cas contraire, il faut que tu l'installes sinon le SDK devrait suffire. Ensuite, ajoute les références suivantes à ton projet :
    • System.Windows.Interactivity.dll
    • Microsoft.Expression.Interaction.dll


    Cette réponse vous a aidé ?
    Problème résolu ?

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    J'ai télécharger Blind 4, mis le SDK.
    Mais apparemment comme c'est un projet 3.5, je ne peux pas utiliser ces librairies

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Suis largué aussi avec le MVVM Light Toolkit

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Oberown Voir le message
    Suis largué aussi avec le MVVM Light Toolkit
    Montres nous au moins comment tu procédes avec MVVM Light. IMHO c'est le toolkit le plus simple à prendre en main. Si tu réussis pas t'auras du mal pour les autres.

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    J'ai lu ce tuto:
    http://nico-pyright.developpez.com/t...t-silverlight/

    J'utilise ça:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <i:Interaction.Triggers>
     
            <i:EventTrigger EventName="???">
                <cmd:EventToCommand  Command="{Binding StartCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>

    Mais je n'arrive pas à le rattacher pour que ça lance le storyboard

  15. #15
    Invité
    Invité(e)
    Par défaut
    Non non !
    Il ne faut pas passer par les commandes pour pouvoir lancer ton animation mais par la classe Messenger.
    Les étapes :
    1. Dans ta Vue (ta fenêtre par exemple) tu t'enregistres pour la reception d'un certain type de messages
    2. Dans ta Vue-Modèle tu envoies un message tout en ne sachant pas qui est-ce qui va le traiter. L'envoi de ce message se fera par l'intermédiaire d'une commande (RelayCommand en MVVM LIght). Une fois le message envoyé, les vues qui se sont abonnées à ce type de message sauront comment le traiter.

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Le 2 est fait.
    Mais pour le je ne vois pas quel balise XAML mettre.

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    C'est bon, c'est réglé je suis passé à VS2010 Express

    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer un storyboard aprés la fin d'un autre
    Par theneoboy dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 27/05/2010, 17h36
  2. MVVM et storyboard
    Par Samuel Blanchard dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 24/02/2010, 09h01
  3. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 09h39
  4. Réponses: 8
    Dernier message: 05/06/2002, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo