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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
SelectedViewModel = new MyUserControlViewModel(parametre);
Ca fonctionne, mais ce n'est peut-être pas la meilleure pratique.

Dans l'attente de vous lire,

Bon code