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] Architecture projet pour interface personnalisable par l'utilisateur


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Profil pro
    Dev
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [MVVM] Architecture projet pour interface personnalisable par l'utilisateur
    Bonjour,
    J'ai à développer une suite applications en WPF conformément a MVVM (je suis débutant dans cette techno et pattern).
    Je dois obtenir une application qui bien que détacher du graphisme. Permet
    a l'utilisateur de revenir dessus et de personnalisé (visibilité, positions,
    couleur de fond, couleur de police, police du texte, texte des labels ...)
    En winform basique j'ai réussis sans problème sa donner ce genre de chose:
    -En dev je pose simplement mes contrôles comme je sens. Ils sont ensuite inscrits en dB en "interface générique"
    -En utilisation si l'utilisateur veus modifier son interface. Une méthode qui prend juste la form en paramètre permet d'implémenter des copies de chaque control avec les évents de personnalisation.
    -Une fois la personnalisation terminé j’inscris en bd la nouvelle interface et modifie l’apparence de mes vrais contrôles
    -Cette nouvelle interface ce substitue a "a l'interface générique" au chargement.

    C'est pas forcement très classieux mais drôlement efficace puisque je n'ai rien à implémenter de particulier encours de dev pour rendre ma form personnalisable n'importe quel form cela fonctionne.

    Maintenant que je suis en MVVM comment faire ?

    Binder manuellement tout mes valeurs de champs c'est trop lourd mes modèles de vue serai incompréhensible genre: StringdulabeldeNomuser = "Nom utilisateur" SizedufontdulabeldeNomuser = "8" .....

    Et si je liste mes contrôles je retourne en couplage fort ??

    Une idée pour obtenir ce genre de chose en wpf avec mvvm? (possible de changer dynamiquement de data context ou truc du genre ?)

    J’espère avoir été claire merci d'avance.

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Ton projet est quand même fortement lié au graphique, tu risques donc en effet de rencontrer des difficultés à l'adapter au pattern MVVM. Tout dépends des propriétés que l'utilisateur peut modifier j'ai envie de dire.

    Les propriétés sur lesquels l'utilisateur peut jouer sont génériques dans l'ensemble d'après les propriétés que tu cites :
    Citation Envoyé par obarator
    (visibilité, positions,
    couleur de fond, couleur de police, police du texte, texte des labels ...)
    Après est-ce vraiment le cas ?

    Si oui, tu dois pouvoir te faire une classe générique du coup avec ces propriétés (X, Y, etc.). Il faudrait ajouter une propriété type pour définir le type de contrôle (label, textblock, etc.), propriété qui serait interprétée par la suite côté xaml pour créer le contrôle correspondant.


    Sinon ça me fait penser à un exemple que j'avais vu et que je viens de retrouver (en silverlight, série de 4 tutoriels) :
    http://blogs.msdn.com/b/davrous/arch...rview-1-4.aspx
    Dans le 2ème, il y a une classe CellViewModel composée des propriétés X, Y, image et type.
    Le tutoriel est assez simpliste si on compare à ce que tu souhaites faire, mais ça peut peut-être t'aiguiller

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Points : 129
    Points
    129
    Par défaut
    Dans mon soft, je gère par utilisateur seulement un Thème prédéfini, et un fond d'écran.

    Seulement 2 variables donc, qui se changent quand un utilisateur se connecte (pour ceci je fait une lecture de mon orienté objet de la BDD: SQLite)

    Sinon pour les valeurs par défaut (aucun utilisateur connecter), je passe par la lecture de mon fichier Settings.

    Pour mes Thème j'ai un manager qui change mes ResourceDictionnary du soft (si besoin certains contrôles possède un style en DynamicResource).
    Pour mon fond d'écran, un simple Binding et un gestion de notification pour l'appliquer de ma fenêtre de paramétrage au MainWindow.

    Si ça peux te mettre sur le droit chemin.

  4. #4
    Membre régulier
    Avatar de Crooby
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2011
    Messages : 65
    Points : 114
    Points
    114
    Par défaut
    le framework Caliburn.Micro permet d'obtenir des MVVM efficaces sans la lourdeur de la mise en place.
    http://caliburnmicro.codeplex.com/

Discussions similaires

  1. [Entité-Association] Tables personnalisables par l'utilisateur
    Par Kanalkyte dans le forum Schéma
    Réponses: 3
    Dernier message: 11/06/2014, 10h23
  2. [WD16] IHM personnalisée par l'utilisateur
    Par WDKyle dans le forum WinDev
    Réponses: 18
    Dernier message: 09/01/2014, 18h22
  3. Personnalisation par l'utilisateur
    Par darkendorf dans le forum Débuter
    Réponses: 4
    Dernier message: 18/07/2008, 19h17
  4. Dépendance fourni par le projet pour le plug-in
    Par vain_mich dans le forum Maven
    Réponses: 10
    Dernier message: 02/07/2007, 10h56
  5. Page personnalisée par l'utilisateur dans l'application
    Par Rodrigue dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/05/2005, 17h45

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