Salut
J'ai un storyboard dans ma View
Comment faire pour la lancer à partir de mon ViewModel ?
Merci
Salut
J'ai un storyboard dans ma View
Comment faire pour la lancer à partir de mon ViewModel ?
Merci
Via un trigger bindé sur une propriété de ton viewmodel.
Via un message déclenché depuis ton ViewModel et intercepté dans ta vue, qui se chargera ensuite de démarrer ton Storyboard.
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
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>
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.
Je veux bien faire comme Thomas a dit, mais je dois utiliser les datatrigger ?
Autre chose ?
Un petit morceau de code par exemple ?
J'ai rédigé un article y'a pas longtemps qui traite de ça justement :
http://blog.lordinaire.fr/2011/05/16...-le-viewmodel/
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
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
![]()
Ceci devrait suffir ?
http://www.microsoft.com/downloads/f...2-6c07c6a00207
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![]()
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
Non non !
Il ne faut pas passer par les commandes pour pouvoir lancer ton animation mais par la classe Messenger.
Les étapes :
- Dans ta Vue (ta fenêtre par exemple) tu t'enregistres pour la reception d'un certain type de messages
- 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.
Le 2 est fait.
Mais pour le je ne vois pas quel balise XAML mettre.
C'est bon, c'est réglé je suis passé à VS2010 Express
Merci pour votre aide
Partager