Les WPF/MVVM alpha geeks dire:MVVM: Concevoir une architecture ViewModel avec ViewModels agrégés/selon
1 View a 1 ViewModel. Parfois, plusieurs vues a 1 ViewModel (en utilisant un Wizard).
Si vous regardez mon image, vous voyez 6 Vues colorées/UserControls.
Les contrôles utilisateur JAUNE, VERT et ORANGE sont utilisés plusieurs fois dans mon application.
Les UserControls rose, bleu et rouge sont utilisés une seule fois.
Questions:
1. devrais-je les faire UserControls aussi? Si oui, pourquoi si je ne les réutilise pas.
2. Supposons qu'il s'agisse de 6 UserControls, doivent-ils partager le même ViewModel? OU chaque vue doit-elle posséder son propre ViewModel?
A.) Créer classCode dans GREEN Envoyer le code de classe JAUNE
B.) Sélectionner le code de classe JAUNE changement élève actuel en BLEU
C.) Sélectionner élève en cours en BLEU détails Changement des élèves dans les documents RED Changement des élèves dans ORANGE
D.) Créer élève ROSE Envoyer élève BLUE
E.) ... beaucoup plus
Est-ce que le chemin à parcourir, tir autour des données avec une classe Messenger pour maintenir les relations à jour?
Il y a un défaut majeur pour moi:
créer un PupilViewModel mais je ne sais pas dans le NewPupilViewModel (ROSE) wether un SchoolclassCodeViewModel existe dans le jaune UserControl donc je pourrais ajouter mon nouveau PupilViewModel au BLEU UserControl .
SchoolclassCodeViewModel 1: N PupilViewModel.
3. Comment pourriez-vous résoudre ce problème?
Cher Robert, j'ai raison de penser que j'utilise ONE ViewModel pour toutes les vues? Si oui, que la solution est facile juste parce que j'ai essayé cela aussi, MAIS il y a un inconvénient => Pour les vues réutilisables je ne peux pas réutiliser le ViewModel_Code je devrais faire copier + coller donc mon code est DOUBLE ou même TRIPLE DocumentsView UserControl à 3 endroits différents. – Elisabeth
Un autre gros inconvénient pour moi avec un ViewModel et un View contenant les 6 Vues est celui auquel View + VM est accessible via un locator viewmodel et le View + ViewModel est créé via MEFedMVVM. C'est bien, mais les 6 vues Inside the One View - qui sont mises dans le ContentControl - ne peuvent pas être créées par MEFedMVVM car il n'y a plus de ViewMOdels NO 6 ... donc je vais perdre tout état visuel dans les 6 Vues. – Elisabeth
A propos de y 2ème inconvénient Je pense que je me trompais, parce que le ViewModel dans le ContentControl - avec la vue contenant les 6 vues - est créé une seule fois et partagé de sorte que le contexte de données est lié aux deux vues liaison de données. OK, donc seul le premier inconvénient me semble valable. – Elisabeth