Partage
  • Partager sur Facebook
  • Partager sur Twitter

MVVM Objet imbriqué

Sujet résolu
Anonyme
    20 novembre 2017 à 10:46:49

    Bonjour,

    J'ai une petite question à propos du modèle MVVM.

    Quand on a un objet imbriqué dans un ViewModel, vaut-il mieux charger "complètement" l'objet dans le ViewModel, ou juste laisser une référence ?

    Voici un exemple en laissant juste une référence :

    public class myClass
    {
      public string field1 {get; set;}
      public string field2 {get; set;}
    }
    
    public class myViewModel
    {
      public myClass myclass {get; set;}
      public bool custom_field1 {get; set;}
    
      public myViewModel(myClass myclass)
      {
        this.myclass = myclass;
        custom_field1 = (myclass.field1 != "");
      }
    }

     ou bien en chargeant l'objet directement dans la ViewModel :

    public class myClass
    {
      public string field1 {get; set;}
      public string field2 {get; set;}
    }
    
    public class myViewModel
    {
      public string field1 {get; set;}
      public string field2 {get; set;}
      public bool custom_field1 {get; set;}
    
      public myViewModel(myClass myclass)
      {
        field1 = myclass.field1;
        field2 = myclass.field2;
        custom_field1 = (myclass.field1 != "");
      }
    }

     ou encore même un mélange des deux

    public class myClass
    {
      public string field1 {get; set;}
      public string field2 {get; set;}
    }
    
    public class myViewModel
    {
      protected myClass myclass {get; set;}
      public string field1 {get { return myclass.field1; } set { myclass.field1 = value;} }
      public string field2 {get { return myclass.field2; } set { myclass.field2 = value;} }
      public bool custom_field1 {get; set;}
    
      public myViewModel(myClass myclass)
      {
        this.myclass = myclass;
        custom_field1 = (myclass.field1 != "");
      }
    }

    La première approche me semble la plus empirique, sachant qu'en cas de two-way binding, il sera plus facile de faire des updates en base de donnée, mais le code sera plus lourd car il faudra déréférencer deux fois la ViewModel pour accéder aux champs de l'objet.

    Pour la deuxième approche, l'accès aux champs est juste simplifiée, mais en cas de changement l'objet ne sera pas modifié.

    Ou peut-être que je me prend la tête pour rien et que les trois méthodes se valent ?

    -
    Edité par Anonyme 20 novembre 2017 à 11:03:00

    • Partager sur Facebook
    • Partager sur Twitter

    MVVM Objet imbriqué

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown