Ceci est ma première tentative de MVVM. Le noyau de mon application est vaguement basé sur l'article msdn de Josh Smith. Et j'utilise aussi le framework light mvvm.wpf mvvm passer des paramètres entre viewmodels en utilisant les commandes
J'ai une fenêtre principale contenant une zone de liste de commandes et une zone d'espace de travail qui affiche les commandes/vues sous forme de tabulations, chaque commande usercontrol a un modèle de vue correspondant. MainWindow a également un viewmodel contenant ma liste de commandes, et les viewmodels d'espace de travail ont un viewmodel d'espace de travail de base.
Ma vue par défaut a une grille de données principale, de MappingSets, qui peut avoir un élément sélectionné. Les commandes lancent de nouveaux tabitems avec des vues qui gèrent les détails de MappingSet en fonction de cet élément sélectionné. J'ai un View/ViewModel qui, en fonction de la commande utilisée, doit retourner un tabitem pour créer un nouveau MappingSet sans données existantes, ou un tabitem contenant le détail de l'élément sélectionné pour l'édition, ou un tabitem contenant des détails sur l'élément sélectionné la base d'un nouveau MappingSet. Après avoir défini la scène, ce que je n'ai pas réussi à élaborer est une manière dépendante de la commande de passer des paramètres, tels que l'identifiant de l'objet MappingSet sélectionné, pour instancier mon viewmodel dans l'un des trois états mentionnés ci-dessus? Par exemple le messager mvvmlight serait-il approprié pour cette tâche?
Ma solution combinait Messenger pour fournir les données au modèle MainWindow View qui contenait les commandes, puis transmis en tant que paramètre au ViewModel lancé par la commande. Donc, combiné à la fois les réponses de Steve et Mike. –