Question

Quelqu'un peut-il expliquer comment fonctionne avec plusieurs cas, le modèle de médiateur.

Mon code dans la vue:

public MyView() {
    Mediator.Register("CloseWindow",()=>Close());
}

et dans le ViewModel:

public SomeMethod() {
    Mediator.Notify("CloseWindow");
}

Cela fonctionne trouver tant qu'il n'y a qu'une seule instance de la vue -. Paire ViewModel

Comment puis-je résoudre avec plusieurs instances?

Était-ce utile?

La solution

J'utilise une solution de rechange. MyView implémente une IMyView d'interface qui contient la méthode Close. L'objet MyViewModel associe la vue et il peut appeler ainsi la méthode Close via l'interface.

Si vous êtes intéressé par un exemple concret, alors vous pourriez jeter un oeil à:

WPF Application Framework (WAF)

Autres conseils

Je ne sais pas comment votre implémentation particulière du modèle de médiateur travaille, mais dans le mien, vous pouvez envoyer plus d'informations que des chaînes.

Par exemple:

public MyView() {
    Mediator.Register<CloseWindowMessage>(message =>
    {
        if (message.ViewModel == DataContext) Close();
    });
}    

et dans le ViewModel:

public SomeMethod() {
    Mediator.Notify(new CloseWindowMessage(this));
}

Dans cet exemple, le ViewModel se passe comme paramètre à la vue. La vue peut alors vérifier que le message est envoyé par son modèle de vue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top