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 :

DependencyProperty "Command" dans un Usercontrol


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut DependencyProperty "Command" dans un Usercontrol
    Bonjour,

    Est ce que quelqu'un aurait un exemple de code pour ajouter une DependencyProperty Command à un UserControl qui héberge des contrôles ne possédant pas la propriété "Command" ?

    Merci beaucoup.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu veux faire quoi précisément ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut
    J'ai un user Control qui est un bouton en apparence, mais qui dérive de Usercontrol et non de Button.

    La classe Button offre une dependencyProperty "Command" qui permet de déclencher une commande.
    Puis je ajouter la meme dependencyProperty à mon Usercontrol pour qu'il puisse lui aussi déclencher une commande ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    fais plustot un customControl si tu veux étendre les possibilités d'un bouton

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu peux passer par une propriété attachée pour faire ce que tu souhaites.

  6. #6
    Membre expérimenté
    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
    Points : 1 313
    Points
    1 313
    Par défaut
    sinon j'ai fait un snippet pour faire des commandes simplement
    evenetiullement je le mettrait ici
    sinon tu rajoute la commande sur ton user control
    et tu la bind sur ton bouton a l'interieur de ton user control
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut
    Je n'ai pas de bouton dans mon user control,
    J'ai un border, un scrollViewer et un textBlock, c'est tout.

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Tu peux passer par une propriété attachée pour faire ce que tu souhaites.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut
    Je ne connais encore pas bien les propriétés attachées, je vais essayer ça, merci.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut
    J'ai déclaré une propriété attachée de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     public static readonly DependencyProperty CommandProperty =
                 DependencyProperty.RegisterAttached("Command", typeof(ICommand), typeof(myUserControl));
     
            public ICommand Command
            {
                get { return (ICommand)GetValue(CommandProperty); }
                set { SetValue(CommandProperty, value); }
            }
    Qu'est ce qui n'est pas correct ? , car impossible de déclencher ma commande appelée ...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut
    J'ai refait les accesseurs de cette façon (cf, msdn):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     public static void SetCommand(UIElement element, ICommand value)
            {
                element.SetValue(CommandProperty, value);
            }
     
            public static ICommand GetCommand(UIElement element)
            {
                return (ICommand)element.GetValue(CommandProperty);
            }
    ... et toujours pas de résultat.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Points : 34
    Points
    34
    Par défaut
    Bon, ça y est j'ai réussi: mais pas avec les Propriétés attachées.

    J'ai fait dériver mon Usercontrol de ICommandSource, et j'ai implémenté Command, CommandTarget et CommandProperty en tant que DependencyProperty.

    Et j'appele command.Execute() sur un évènement à l'intérieur de mon UserControl.

    Merci à tous.

  13. #13
    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
    Bonjour.

    Ce sujet m'intéresse mais la solution il n'y aurait pas moyen de passer un exemple ca je comprend pas trop le fonctionnement

    Merci.

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 45
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup, ce forum m'a beaucoup aidé

+ Répondre à la discussion
Cette discussion est résolue.

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