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 :

binding TwoWay entre un objet et un controle


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut binding TwoWay entre un objet et un controle
    Bonjour,

    Après quelques recherches, je m'en remet au forum pour avoir une piste.

    J'ai une page XAML, avec différents éléments dont plusieurs textBox qui sont bindé sur un objet que j'ai déclaré dans mon code behind.

    Je rencontre 2 problèmes.

    Admettons que j'ai un Objet oObjet avec une property angle.
    Je voudrais que ma textbox txtAngle soit bindé en mode TwoWay sur cette property.

    1er pb. Avec un binding OneWay, txtAngle est correctement initialisé avec la bonne value. par contre dès que je change la value angle, cela n'est pas reporté sur txtAngle alors qu'il est bindé dessus.

    2eme pb. binding en mode TwoWay je dois déclarer un path, et je ne vois pas trop ce que peut être le path d'une property de mon Objet. En l'occurrence oObjet.angle.

    Merci

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Quel est le DataContext de ta TextBox ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    Je ne l'ai pas déclaré.

    C'est le data context qui va me permettre de faire la liaison entre mon objet(en code behind) et mon control TextBox ?

  4. #4
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Citation Envoyé par filobilo Voir le message
    1er pb. Avec un binding OneWay, txtAngle est correctement initialisé avec la bonne value. par contre dès que je change la value angle, cela n'est pas reporté sur txtAngle alors qu'il est bindé dessus
    Il faut que ta classe implémente l'interface IPropertyChange, afin que tu notifie que ton object source a changé.
    Citation Envoyé par filobilo Voir le message
    2eme pb. binding en mode TwoWay je dois déclarer un path, et je ne vois pas trop ce que peut être le path d'une property de mon Objet. En l'occurrence oObjet.angle.
    Tu ne dois pas specifier de path pour le textbox. un { Binding angle} est la même chose que { Binding Path=angle} (En supposant que oObjet soit le DataContext, car c'est le binding va se faire sur le DataContext par défaut) .
    Twoway est le mode par défaut pour les textbox.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    Merci,

    je vais essayer tout ça.

    je crois que je vais pas tarder à passer du statut noob à noob avancé

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    L'interface que ta classe doit implémentée c'est INotifyPropertyChanged. Ensuite dans le set de ta propriété Angle tu dois appeler l'event PropertyChanged avec comme paramètre le nom de ta propriété (donc ici Angle).

    Pour le binding twoway il suffit juste de rajouter le mode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text="{Binding Path=Angle, Mode=TwoWay}"
    Comme dit plus haut, on peut enlevé Path=, mais je préfère le mettre.

Discussions similaires

  1. binding entre un objet wpf et un objet COM
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/05/2010, 15h58
  2. Binding TwoWay entre deux contrôles
    Par Lelio1407 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 28/10/2009, 18h01
  3. [vector] Partager une même variable entre deux objets.
    Par Ekinoks dans le forum SL & STL
    Réponses: 18
    Dernier message: 25/08/2005, 20h40
  4. GLScene et les collisions entre les objets
    Par HopeLeaves dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 13/06/2005, 19h45
  5. Réponses: 4
    Dernier message: 25/09/2004, 09h58

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