Double appel du ViewModel
Bonjour,
Ma question va peut être vous paraitre bizarre.
Je travaille avec la tech WPF.
Dans le pattern MVVM, il faut définir un "Datacontext" dans le code-behind de la vue.
Code:
DataContext = new MyViewModel();
Dans des applis, je "change" de page en appelant différent UserControl selon les actions de l'utilisateur.
J'appelle donc des "UserControlViewModel" via la fonction :
Code:
SelectedViewModel = new MyUserControlViewModel();
Lorsque l'on exécute le code, le constructeur "MyUserControlViewModel" est appelé. Il exécute du code s'il y en a.
Puis la vue "MyUserControlView" s'affiche. A ce moment la vue lance également le constructeur "MyUserControlViewModel" (car c'est son DataContext).
Par conséquent, la vue-modèle "MyUserControlViewModel" s'exécute deux fois. (rapidement certe, mais cela peut créer des doublons de lecture d'une DB par exemple.)
Quelle solution pouvez-vous m'apporter ?
PS : j'ai testé en créant un second constructeur avec paramètre qui est appelé
Code:
SelectedViewModel = new MyUserControlViewModel(parametre);
Ca fonctionne, mais ce n'est peut-être pas la meilleure pratique.
Dans l'attente de vous lire,
Bon code