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 :

Création de contrôle : ViewModel et DependencyProperty


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Par défaut Création de contrôle : ViewModel et DependencyProperty
    Bonjour,

    Cas d’un contrôle créé appellé "TaskPanel" pour lequel on a besoin de lui passer les informations du BreadCrumb : une ObservableCollection<UserTaskInfos>. Pour cela on est contraint de créer dans TaskPanel une propdp « BreadCrumbTasksList ».

    De ce fait, la donnée BreadCrumb se retrouve dans la classe TaskPanel et pas dans une classe TaskPanelViewModel associée. Si je veux implémenter une commande je devrais apriori l’implémenter dans la classe TaskPanelViewModel de mon contrôle. J’aurai dans ce cas à la fois la classe du contrôle TaskPanel qui contient les données utiles et une classe ViewModel que l’on pourrait qualifier d’incomplète puisqu’elle ne contient pas les données du BreadCrumb. Qu'en pensez-vous ? Quelle est la bonne manière de faire dans ce cas de figure ?

    Merci.

  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
    Tu peux créer un evenement dans ton control, t'y abonner à l'exterieur pour executer les methodes du ViewModel.

    Tu peux créer une propdp sur le ViewModel directement.

    Tu peux utiliser accéder à ton ViewModel via une instance static (dans App.xaml.cs généralement)

    Tout dépend en fait, si tu veux réutiliser le control dans un autre projet ou si c'est un control spécifique.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Par défaut
    Tu peux créer un evenement dans ton control, t'y abonner à l'exterieur pour executer les methodes du ViewModel.
    >> Si je fais ça, je dois gérer au niveau de ma classe de control le lien avec les méthodes du ViewModel associé... c'est ça ?

    Tu peux créer une propdp sur le ViewModel directement.
    >> Heu là je ne comprends pas : si je créé un propdp dans la classe TaskPanelViewModel elle ne sera pas accessible à l'utilisation du contrôle... si ?
    Est-ce que je pourrai faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <myControls:TaskPanel BreadCrumb="{Binding xxx}" />

    Tu peux utiliser accéder à ton ViewModel via une instance static (dans App.xaml.cs généralement)
    Tout dépend en fait, si tu veux réutiliser le control dans un autre projet ou si c'est un control spécifique.
    >> J'aimerai faire un contrôle générique qui n'est pas lié à l'application spécifiquement...


    Merci pour ta réponse.

  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

    Tu peux créer un evenement dans ton control, t'y abonner à l'exterieur pour executer les methodes du ViewModel.
    Si je fais ça, je dois gérer au niveau de ma classe de control le lien avec les méthodes du ViewModel associé... c'est ça ?
    Oui c'est ça. Une gestion par évenement classique en somme.
    tu peux également ajouter une propriété Command / CommandParameter comme les Boutons en SL4 afin de relayer tes commandes à ton ViewModel.

    Heu là je ne comprends pas : si je créé un propdp dans la classe TaskPanelViewModel elle ne sera pas accessible à l'utilisation du contrôle... si ?
    Est-ce que je pourrai faire :
    <myControls:TaskPanel BreadCrumb="{Binding xxx}" />
    Plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <myControls:TaskPanel TaskPanelViewModel="{Binding xxx}" />
    et en interne à ton control (si le datacontext du LayoutRoot de ton control pointe sur lui même) par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Button Content={Binding TaskPanelViewModel.BreadCrumb}></Button>

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/12/2007, 15h48
  2. [VB.NET] - Création de contrôle dynamique
    Par DeFCrew dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/09/2006, 16h18
  3. Création non contrôlée de lignes vides dans une Hash
    Par Ashish_Kebab dans le forum Langage
    Réponses: 1
    Dernier message: 02/04/2006, 19h03
  4. Création de contrôle comme ceux d'Access
    Par Mayhem dans le forum IHM
    Réponses: 11
    Dernier message: 27/12/2005, 03h20

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