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 :

[sl3] Binding sur un usercontrol


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 61
    Par défaut [sl3] Binding sur un usercontrol
    Bonjour,

    J'ai créé un userControl, et je voudrais faire du binding sur une propriété de celui-ci.

    Dans mon userControl, j'ai donc une propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public string textBinding
            {
                get { return tb_test.Text; }
                set { tb_test.Text = value; }
            }
    tb_test est une textbox de test pour tester le binding.

    Dans le xaml de la page ou j'appelle mon userControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <local:validTextbox textBinding="{Binding tb10}"  />
    Et quand je lance mon application, une erreur apparait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AG_E_PARSER_BAD_PROPERTY_VALUE
    Je sais pas si je fais la bonne méthode, sinon le binding de test tb10 marche bien,
    car quand je fais un test simple dans ma page, cela marche nickel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <TextBlock Text="{Binding tb10}" />
    Voila, si quelqu'un sait d'ou vient mon erreur


    Merci d'avance

  2. #2
    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
    Il faut que tu crées une Dependency Property pour autoriser le binding (pas une propriété toute simple).

    http://msdn.microsoft.com/en-us/libr...8VS.95%29.aspx

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 61
    Par défaut
    Merci beaucoup car marche nickel

    J'ai juste remplacer ma property

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public string textBinding
            {
                get { return tb_test.Text; }
                set { tb_test.Text = value; }
            }
    Par ce que tu m'as donné :

    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
     
    public static readonly DependencyProperty textBindingProperty = 
    DependencyProperty.Register("textBinding", typeof(string), typeof(myBinding),
                new PropertyMetadata(new PropertyChangedCallback(textBindingChanged)));
     
    public string textBinding
            {
                get { return (string)GetValue(textBindingProperty); }
                set { SetValue(textBindingProperty, value); }
            }
     
     private static void textBindingChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
            {
                myBinding bin = o as myBinding;
                bin.tb_binding.Text = bin.textBinding;
            }
     
    private void tb_binding_TextChanged(object sender, TextChangedEventArgs e)
            {
                textBinding = tb_binding.Text;
            }

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

Discussions similaires

  1. Binding sur textbox dans usercontrol
    Par davidpl dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 07/11/2014, 12h17
  2. UserControl: Pourquoi le Binding sur ses propres propriétés ne fonctionne pas ?
    Par Chekov dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 07/10/2009, 22h08
  3. Méthode Bind sur quoi
    Par frouty dans le forum wxPython
    Réponses: 4
    Dernier message: 18/11/2006, 00h24
  4. binding sur une string
    Par fxp17 dans le forum JSF
    Réponses: 8
    Dernier message: 08/09/2006, 11h38
  5. Réponses: 1
    Dernier message: 23/08/2006, 11h38

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