/// <summary> /// Methode abonné à l'evenement de la classe messenger /// Lorsque celui est déclencher par messageStatus recoit l'action source du déclenchement /// En fonction de cette action l'on peut instancier un nouveau ViewModel pour notre currentViewModel /// Cela va donc notifier le changement du currentviewModel à la vues bindé sur le contentPresenter /// Grace à notre DataTemplate en fonction du ViewModel celui ci va afficher le bon UserControle /// L'on peut aussi rediriger des objet lors de la création du nouveau viewmodel et ainsi faire transiter des informations /// </summary> /// <param name="messenger_action"></param> /// <param name="obj"></param> private void listeningMessenger(EnumMessengerAction messenger_action, Object obj) { //Debug.WriteLine("Notification Command"); if (messenger_action.Equals(EnumMessengerAction.GO_PROG_HOME)) { CurrentViewModel = new ProgPageViewModel(); } else if (messenger_action.Equals(EnumMessengerAction.GO_HOME)) { CurrentViewModel = new HomeViewModel(); } else if (messenger_action.Equals(EnumMessengerAction.GO_DEMONSTRATION)) { CurrentViewModel = new DemonstrationViewModel(); } }
/// <summary> /// Même principe que la méthode précédent seulement l'on ne déclenche qu'une seule action sans avoir à envoyer instancié /// </summary> /// <param name="messenger_action"></param> protected virtual void publishAction(EnumMessengerAction messenger_action) { publishAction(messenger_action, null); }
/// <summary> /// Permet de déclencher un événement via l'envoie d'une action depuis n'importe quel viewModel héritant de BaseViewModel /// Un objet peut être envoyé via cette appelle /// </summary> /// <param name="messenger_action">L'action à déclencher</param> /// <param name="obj">L'objet à envoyer</param> protected virtual void publishAction(EnumMessengerAction messenger_action, Object obj) { Messenger.Messenger_instance.Obj = obj; Messenger.Messenger_instance.Action_message = messenger_action; }