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 :

GetBindingExpression me retourne null


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut GetBindingExpression me retourne null
    Bonjour à tous.

    Je suis débutant en WPF et j'ai quelques problèmes avec le binding. Pour expérimenter le déclenchement "manuel" d'un binding j'ai crée une textbox, un textblock et un bouton. j'ai ensuit bindé le text de mon textblock sur le text de ma textbox avec l'option UpdateSourceTrigger à explicit.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Grid>
            <StackPanel>
                <TextBox Height="50" Name="Boite_1" />
                <TextBlock  Height="50" Name="Boite_2" Text="{Binding Text, ElementName=Boite_1, UpdateSourceTrigger=Explicit}"/>
                <Button Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
            </StackPanel>
        </Grid>

    Mon évènement button1_click déclenche ces lignes de codes qui devraient normalement mettre à jour ma source.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void button1_Click(object sender, RoutedEventArgs e)
            {
                BindingExpression be = Boite_2.GetBindingExpression(TextBox.TextProperty);
                be.UpdateSource();
            }

    Mais voila, quand je clique sur le bouton je récupère une exception car be=null...

    Un autre soucis, le binding se fait tout seul en continu (si je tape dans ma textbox cela apparaît tout de suite dans le textblock or premièrement d'aprés msdn le trigger par défaut pour les textbox est lostfocus et j'ai ajouté UpdateSourceTrigger=Explicit. Le binding ne devrait donc pas se faire tout seul....

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

    C'est normal, vu que t'as mis TextBox.TextProperty au lieu de TextBlock.TextProperty.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Merciiiii ^^

    ça ne plante plus, mais par contre il met quand même à jour le texte tout seul alors qu'il ne devrait pas... des idées?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je pense que ce serait plutôt l'inverse qu'il faudra faire, c'est à dire mettre le binding dans le TextBox Boite_1. avec un mode OneWay et considérer le TextBlock Boite_2 comme la source.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Grid>
            <StackPanel>
                <TextBox Height="50" Name="Boite_1" Text="{Binding Text, ElementName=Boite_2, Mode=OneWay, UpdateSourceTrigger=Explicit}"/>
                <TextBlock  Height="50" Name="Boite_2" />
                <Button Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
            </StackPanel>
        </Grid>

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void button1_Click(object sender, RoutedEventArgs e)
            {
                BindingExpression be = Boite_1.GetBindingExpression(TextBox.TextProperty);
                be.UpdateSource();
            }

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Ca marche ! mais avec le mode one way to source

    Merci beaucoup !!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sissoux Voir le message
    Ca marche ! mais avec le mode one way to source
    Ok, je confonds les deux parfois ! Merci de me l'avoir signaler.

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

Discussions similaires

  1. Findcontrol retourne null
    Par Kiwi_violet dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/04/2007, 12h21
  2. TTF_OpenFont() retournant NULL
    Par FabaCoeur dans le forum SDL
    Réponses: 4
    Dernier message: 11/04/2007, 16h30
  3. GetDC retourne NULL Oo
    Par Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2007, 17h46
  4. Réponses: 3
    Dernier message: 02/03/2007, 11h41
  5. opérateur + dans SELECT retourne null ?
    Par david_chardonnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2007, 10h47

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