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

Silverlight Discussion :

CustomControl Réutilisable: MVVM nécessaire ?


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Par défaut CustomControl Réutilisable: MVVM nécessaire ?
    Bonjour,
    Mon objectif est de construire un CustomControl lookless tel que:
    • Quand il est hébergé dans une VIEW, il doit présenter (sous une forme Treeview par exemple, mais cela pourrait être une autre présentation) une collection du genre ObservableCollection<int>
    • Cette collection résulte d'une source de données
    • Quand il est hébergé dans une VIEW, je peux utiliser la collection proposée, pour la manipuler dans la VIEW. -> j'utilise donc une DependecyProperty.
    • Quand il est hébergé dans une VIEW, je peux aussi modifier la collection


    Donc mon customControl possède sa propre logique: Quand on l'héberge, c'est lui qui récupère ses données;

    Ma question est:
    Dans une pratique MVVM, comment un CustomControl peut se lier à un VM ?
    Ou Doit-on coder la manipulation des données propres au Control dans la classe même du Control...?

    Merci d'avance pour vos réponses

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Je dirais qu'un CustomControl par essence est un control "bas niveau" par opposition à un UserControl.

    Le CustomControl est moins à l'aise avec le Binding que ne peut l'être le UserControl.

    Donc je ne pense pas que cela soit une bonne chose que la logique de ce genre de control s'effectue coté VM.

    Donc mon customControl possède sa propre logique: Quand on l'héberge, c'est lui qui récupère ses données;
    En revanche le fait qu'il récupère lui même ses données ne parait pas une bonne chose. Il vaut mieux déléguer la chose au VM qui transmettra au CustomControl via un ItemsSource par exemple (ou faire plusieurs CustomControls).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Par défaut
    Je me suis mal expliqué et finalement cela peut etre un usercontrol.

    En finalité on pourrait dire qu'il s'agit:
    UserControl = une VIEW avec son VIEWMODEL: logique de récupération de données + Mise à jour de ses données => bouton 'OK' -> Command sur VM

    Une VIEW qui héberge le UserControl: peut récupérer les données exposées par le UC pour les utiliser dans le VIEWMODEL de la VIEW.

    Donc c'est une histoire de ViewModel dans ViewModel.. et comment faire le pont entre les deux ? ..... une DP ? comment l'implémenter alors ?

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Soit tu rends toutes tes VM statiques (souvent dans le app.xaml) et ainsi tu les appelles directement les unes dans les autres, soit tu crées des propriétés dans tes VM qui se rapporte à d'autre VM.

    La première solution est la plus utilisée.

  5. #5
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    UserControl = une VIEW avec son VIEWMODEL: logique de récupération de données + Mise à jour de ses données => bouton 'OK' -> Command sur VM
    Si c'est une view elle ne devrait contenir que de la logique de présentation des données par de logique de récupération, celle-ci étant gérée par une autre couche qui les transmettra à cette view.

Discussions similaires

  1. [MVVM] Réutilisation d'une view
    Par rvzip64 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 03/10/2011, 12h54
  2. CustomControl et MVVM
    Par poussinphp dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 18/03/2011, 11h18
  3. [Débutant][CVS] Ressources nécessaires
    Par M.Le_maudit dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/01/2004, 09h40
  4. [CR] Version nécessaire pour créer des fichiers DSR ?
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/11/2003, 09h01
  5. [CR] erreur "groupe nécessaire ..."
    Par vb6dv dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 15/10/2003, 11h12

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