Les contrôleurs de MVVM, Comment obtenir des informations à partir de viewmodel à la manette?
Nous construisons une application en utilisant le pattern MVVM, nous avons contrôleurs de relier tous les points de vue et viewmodel à l'aide de DI. Tous les exemples de MVVM, j'ai vu sont vraiment simpliste et ont 1 point de vue. Comment faire/doit viewmodel parler de nouveau à la manette? Le contrôleur connaît les modèles et points de vue, si le viewmodel envoyer des événements vers le contrôleur? Où enregistrer arriver? Modèle? Contrôleur?
OriginalL'auteur nportelli | 2009-09-24
Vous devez vous connecter pour publier un commentaire.
Nous utilisons les Contrôleurs de trop, mais dans notre cas, ils sont responsables de l'application de flux de travail. Le Contrôleur sait le ViewModel et le Modèle, mais pas le béton, car ce sera injectée par le Conteneur IoC.
Si vous êtes intéressé par un exemple qui montre que plus d'une INTERFACE utilisateur (boîte de dialogue modale, assistant flux de travail conditionnel), alors vous pourriez jeter un oeil à:
Application WPF Cadre (WAF) - http://waf.codeplex.com
OriginalL'auteur jbe
Votre ViewModel ne pas prendre une dépendance sur un IController ou une autre interface, afin qu'ils puissent parler à elle? J'essaie de garder le plus de la logique de l'application de ce Dernier comme possible, comme ces classes peuvent facilement devenir pléthorique.
Je suis d'accord que le MVVM cadres ont tendance à être trop simpliste avec leurs échantillons. En particulier, le déplacement entre les points de vue et les écrans de votre application est quelque chose que je voudrais voir plus d'exemples de. J'ai créer un IViewManager interface, pour permettre à mon Viewmodel pour nous demander de passer à un autre point de vue.
Hmmmm, je ne suis pas entièrement sûr de comprendre ce modèle que vous utilisez. Vous dites que vous avez un contrôleur de per-view? N'est-ce pas plus MVC que MVVM? Vous pourriez peut-être ajouter un peu de code en exemple à votre question afin de montrer comment vous pouvez créer une vue et un viewmodel.
Un contrôleur pour afficher non, un contrôleur par cas d'utilisation. Désolé si je n'ai pas été bien clair.
OriginalL'auteur Mark Heath
Dans le cas d'une application qui dispose de plusieurs modules et exige la séparation des préoccupations, je vous conseille d'utiliser prisme cadre.
http://msdn.microsoft.com/en-us/library/gg406140.aspx
OriginalL'auteur Rafael Fernandes
Je utiliser un programme d'installation pour vous. Dans mon contrôleur, d'où ma DI et vue injection va vers le bas, il m'arrive de garder des références à ce Dernier (qui détiennent la Vue). Certains cas, j'ai peut-être un événement sur la VM qui est géré par le contrôleur. Dans d'autres cas extrêmes (comme si la VM/V a été créé à l'extérieur du contrôleur, par exemple dans une autre machine virtuelle), je peut même utiliser le EventAggregator (avec une forte ref) pour écouter les événements qui peut être tiré sur la machine virtuelle. Dans ce cas, un stockées ref de la machine virtuelle n'est pas nécessaire.
OriginalL'auteur Jeremiah Morrill
Comment au sujet de l'utilisation des événements dans lequel le contrôleur s'abonne aux événements de machine virtuelle ou à l'aide d'un médiateur modèle où un médiateur est injecté dans une machine virtuelle.
OriginalL'auteur P.K