Quelques questions de base, mais la plupart des exemples que je vois, que d'une seule vue avec un viewmodel et un viewmodellocator, donc mes questions sont:Comment transmettre des données (. Par exemple selectedItem) d'une vue à une autre vue à l'aide viewmodel
- Chaque viewmodel possède-t-il son propre viewmodellocator? (L'extrait inclus dans la boîte à outils mvvm light pour un viewmodellocator semble impliquer ceci, car il génère certaines méthodes, par exemple, cleanup qui a le même nom pour chaque viewmodellocator que vous créez)
- Les vues DataContext sont liées à ViewModeLocator, mais comment? peut-on préciser qu'il a un argument (par exemple. vous voulez que ce ViewModel pour récupérer un certain dossier client)
Je ne comprends pas toutes les viewmodels étant statique. Quand je veux ouvrir une fenêtre d'édition, elle montrera toujours les mêmes données. Je m'attendais à être capable de créer une nouvelle instance de viewmodel pour la fenêtre d'édition (supposons que vous pouvez avoir 2 fenêtres d'édition du même type, ouvertes en même temps ... ce n'est pas possible avec un viewmodel statique). Créer une nouvelle instance assurerait également, toutes les propriétés étant définies à leurs valeurs par défaut (par exemple certaines propriétés pour activer/désactiver les boutons, entre autres) – rekna
Vous pourriez essayer quelque chose comme: Dans MainWindow, l'utilisateur clique sur Edit qui pointe vers RelayCommand EditCommand; Ensuite, dans ViewModel de MainWindow, vous avez un ObservableCollection Editors {get; private set;}, et dans EditCommand {Editors.Add (nouveau EditViewModel() {/ * set Defaults * /}); } –