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 :

Comment accéder aux contrôles depuis du code?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut Comment accéder aux contrôles depuis du code?
    Hello,

    J'ai un petit bouquin avec moi que je consulte dans mes débuts avec WPF.

    Je souhaite accéder à des contrôles graphiques que j'ai mis en place et pour lesquels j'y ai mis les propriétés Name='myName'. Le seul soucis, c'est que je n'y arrive pas à accéder: le fonctionnement pour accéder à un contrôle ne semble pas le même qu'avec Windows Forms ou ASP.NET.

    J'ai essayé Application.myName, Window.myName, Grid.MyName... rien à faire :s

    Je pense que ça doit être tout con, mais ça me bloque pas mal dans mon avancement.

    Merci bien pour votre aide et bonne soirée,

    L.

  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
    Par défaut
    Dans le code behind associé au fichier xaml, tu peux accéder à un contrôle en utilisant this.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Merci

    Par contre, depuis une autre classe, comment est-ce que je fais?

    Ca me semble quand même bizarre (voir impossible) de ne pas pouvoir y accéder...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Si tu veut accéder à un contrôle de ta fenêtre principal depuis une autre classe une solution parmi d'autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Window1)App.Current.MainWindow).button2.Content = "Mon Contenu";
    Sinon d'une autre fenêtre "secondaire" directement avec l'instance que tu as crée en amont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window2.button2.Content = "Mon Contenu";
    Sauf erreur de ma part tes contrôles sont des membres interne (internal) donc accessible dans le même assembly.
    Je pense que ça doit fonctionner par contre est-ce que c'est super propre d'y accéder directement comme ça, c'est une autre question.

  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
    Citation Envoyé par alves.seb Voir le message
    par contre est-ce que c'est super propre d'y accéder directement comme ça, c'est une autre question.
    Effectivement, c'est pas le top....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Effectivement, c'est pas le top....
    On n'est d'accord, mais tu proposerait quel méthode pour faire propre ? Créer des propriétés dans ta fenêtre permettant d'accéder ou mettre à jour tes contrôles ?

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Ca m'intéresse aussi une solution "propre" pour mon problème

  8. #8
    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
    Citation Envoyé par alves.seb Voir le message
    On n'est d'accord, mais tu proposerait quel méthode pour faire propre ? Créer des propriétés dans ta fenêtre permettant d'accéder ou mettre à jour tes contrôles ?
    Passer par des propriétés est, à mon sens, le mien. Ce n'est pas parce que c'est une Window que les règles de programmation ne doivent pas/plus s'appliquer

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    On n'est d'accord.
    Bon bé je pense que tu as ta réponse Leelith.

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Oui. Merci encore

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/09/2009, 20h02
  2. Comment accéder à ce contrôle dans le code behind ?
    Par insane_80 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/04/2009, 13h34
  3. Réponses: 1
    Dernier message: 25/09/2008, 20h33
  4. Réponses: 5
    Dernier message: 11/09/2007, 11h32
  5. Réponses: 7
    Dernier message: 26/02/2007, 12h07

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