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 :

RelayCommand et méthode avec paramètres


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut RelayCommand et méthode avec paramètres
    Bonjour à tous,

    Je souhaite appeler une méthode en utilisant une propriété de type RelayCommand.

    Cela fonctionne parfaitement quand je n'ai pas de paramètre dans la signature de la méthode.

    Voici ce que j'ai tenté
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
            private RelayCommand addDefaultCmd;
     
            public RelayCommand AddDefaultCmd
            {
                get
                {
                    if (addDefaultCmd == null)
                    {
                        addDefaultCmd = new RelayCommand(AddDefault);
                    }
                    return addDefaultCmd;
                }
                //set { addDefaultCmd = value; }
            }
     
            private void AddDefault(object sender, MouseButtonEventArgs e)
            {
                Shape root = (Polygon)e.OriginalSource;
     
                this.listDefault.Add(new Default()
                {
                    X = e.GetPosition(relativeTo: (Polygon)e.OriginalSource).X,
                    Y = e.GetPosition(relativeTo: (Polygon)e.OriginalSource).Y
                });
             }
    Merci par avance de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    MVVM Light Toolkit possède un behavior EventToCommand permettant de passer l'argument de l'évènement en paramètre en mettant à true la valeur de la propriété PassEventArgsToCommand au cas où t'utiliserais ce framework

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Plus simplement, MVVM Light Toolkit possède une variante de la classe RelayCommand qui prend/accepte un paramètre.

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Les façons de faire m'interresse!
    Auriez-vous des exemples?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Un exmple simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RelayCommand<string> MyCommand = new RelayCommand<string>(s =>
    {
        MessageBox.Show(s);
    });
    Il te suffit maintenant d'affecter une string à la propriété CommandParameter du contrôle qui utilise ta Command (ou à l'EventToCommand)

  6. #6
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Merci pour ton aide précieuse!

    Est-il possible de mettre dans le CommandParameter le sender et MouseButtonEventArgs?

    Pour cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void AddDefault(object sender, MouseButtonEventArgs e)
    {
          this.listDefault.Add(new Default()
          {
                X = e.GetPosition(relativeTo: (Polygon)e.OriginalSource).X,
                Y = e.GetPosition(relativeTo: (Polygon)e.OriginalSource).Y
          });
    }

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/07/2008, 17h26
  2. Réponses: 0
    Dernier message: 22/07/2008, 11h28
  3. Réponses: 1
    Dernier message: 28/01/2008, 14h49
  4. appeler une méthode avec paramètre dans une page JSP
    Par javasmif dans le forum Struts 2
    Réponses: 1
    Dernier message: 06/12/2007, 10h48
  5. méthode avec paramètre
    Par MaitrePylos dans le forum Ruby on Rails
    Réponses: 9
    Dernier message: 21/06/2007, 09h26

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