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.
Dans des applis, je "change" de page en appelant différent UserControl selon les actions de l'utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DataContext = new MyViewModel();
J'appelle donc des "UserControlViewModel" via la fonction :
Lorsque l'on exécute le code, le constructeur "MyUserControlViewModel" est appelé. Il exécute du code s'il y en a.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SelectedViewModel = new MyUserControlViewModel();
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é
Ca fonctionne, mais ce n'est peut-être pas la meilleure pratique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SelectedViewModel = new MyUserControlViewModel(parametre);
Dans l'attente de vous lire,
Bon code
Partager