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

Windows Presentation Foundation Discussion :

[MVVM] Abstrait sans code


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut [MVVM] Abstrait sans code
    Salut à tous,

    J'ai fait un article sympa sur mon blog pour faire un ViewModel Abstrait c'est a dire qu'il va absorber les propriétés du modèle sans mettre une ligne de code
    http://www.dsw.fr/blogs/index.php?p=...&c=1&tb=1&pb=1

    donnez moi vos avis !!!

    Merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut
    Mais pourquoi ne pas implémenter INotifyPropertyChanged dans ton Model dès le départ ?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    En général on a pas la main sur le modèle de base
    sinon on s'emmerderait pas a mettre un viewmodel
    (en dehors des command et des méthodes ajoutés)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    Citation Envoyé par alexlem Voir le message
    Mais pourquoi ne pas implémenter INotifyPropertyChanged dans ton Model dès le départ ?
    A condition d'avoir le contrôle sur le Model. Cela n'est pas systématiquement le cas, selon les projets.

    Si tu est maître de ton Model, INPC est la meilleure solution, si c'est une autre équipe qui réalise le Model, tu devras peut être faire avec ce qu'on te donne.

    Sinon l'article est interessant, cela me rappelle le framework MicroModel

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut
    Ok, je comprends. En tout cas c'est vraiment une bonne idée .

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Sympa, le principe est assez bien vu

    Par contre y a un truc qui me gêne un peu... ce n'est généralement pas une bonne chose que les propriétés du ViewModel accèdent directement à celles du modèle. Sauf dans le cas d'une vue en lecture seule, il vaut mieux avoir une copie locale des valeurs, de façon à pouvoir valider ou annuler les changements.


    Un peu dans le même esprit, tu seras sans doute intéressé par cet article, qui décrit un autre mécanisme (à base de dynamic) pour faire quelque chose de similaire

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    a mon avis on pourrait rajouter ce mécanisme directement dans le typedescriptor

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut
    Ton truc m'intéresse dans le sens où ça permet de rendre "Notifiable" un Model qui à la base ne l'est pas.

    Ce qui me gêne (personnellement) c'est que le ViewModelAbstract impose ce fonctionnement à tout le ViewModel, et ajoute une couche intermédiaire.

    Ce que j'aurais aimé faire c'est dire que le type Person fonctionne comme s'il implémentait INPC, sans hériter d'un ViewModel spécifique.

    Ce qui s'écrirait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
            private Notifiable<Person> _myPerson;
     
            public Notifiable<Person> MyPerson
            {
                get
                {
                    return _myPerson;
                }
     
                set
                {
                    _myPerson = value;
                    OnPropertyChanged("MyPerson");
                }
            }
    Du coup à partir de ton code, et du lien de tomlev basé sur les Dynamic, j'ai essayé de l'implémenter, et ça fonctionne.

    J'ai mis un projet en pièce jointe si ça vous intéresse.
    Fichiers attachés Fichiers attachés

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par alexlem Voir le message
    Ce qui s'écrirait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
            private Notifiable<Person> _myPerson;
     
            public Notifiable<Person> MyPerson
            {
                get
                {
                    return _myPerson;
                }
     
                set
                {
                    _myPerson = value;
                    OnPropertyChanged("MyPerson");
                }
            }
    Excellent, bon boulot

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    oui en effet c'est pas mal
    jai voulu rester simple pour decoupler l'ensemble sur la base de ce qui existait dans le tronc commun
    rajoute ton code sur mon blog ...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut
    Citation Envoyé par ikeas Voir le message
    oui en effet c'est pas mal
    jai voulu rester simple pour decoupler l'ensemble sur la base de ce qui existait dans le tronc commun
    rajoute ton code sur mon blog ...
    euh.. je colle le tout dans un commentaire ?

Discussions similaires

  1. [MVVM] Fermer une fenêtre (sans code behind)
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 22/06/2011, 19h57
  2. MVVM : Fermer une fenêtre enfant sans code-behind !
    Par GregLeOuf dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 11/12/2010, 13h16
  3. [MVVM] Validation sans code behind
    Par anthyme dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 29/07/2009, 18h38
  4. Imprimer la structure d'une base sans code vba
    Par steph141 dans le forum Access
    Réponses: 2
    Dernier message: 06/04/2006, 22h30
  5. Réponses: 5
    Dernier message: 02/11/2005, 11h49

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