IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Double appel du ViewModel [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Février 2015
    Messages : 66
    Points : 63
    Points
    63
    Par défaut 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 : 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

  2. #2
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonjour,

    Si le viewmodel est déjà instancié, le constructeur ne devrait pas être appelé une seconde fois. Donc je pense que ton code instancie 2 viewmodels différents.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Double appel à paintComponent()
    Par pverley dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/09/2007, 12h16
  2. src="" et double appel HTTP
    Par stefdefifoot dans le forum Apache
    Réponses: 1
    Dernier message: 20/01/2007, 11h08
  3. double appel du script quand balise <img src vide
    Par zamanika dans le forum Langage
    Réponses: 8
    Dernier message: 16/11/2006, 12h21
  4. [Servlet] double appel de la méthode init()
    Par nin2 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/06/2006, 08h09
  5. [POO] double appel de méthode
    Par nako dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2006, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo