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 :

Binding dans une TextBox


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Lelio1407
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut Binding dans une TextBox
    Bonjour,

    Dans ma classe App : Application, j'ai déclaré une variable globale _projectName avec sa ppté ProjectName{get;set;}

    Dans le même namespace, j'ai une classe NewProject : UserControl avec, entre autres, une textBox.

    je voudrais "binder" sa propriété text avec ProjectName.

    J'ai écrit cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <TextBox Name="NewProject_ProjectNameTextBox" >
         <TextBox.Text>
               <Binding Path="ProjectName"></Binding>
         </TextBox.Text>
     </TextBox>
    Quand je lance mon appli, la textbox reste desesperament vide. Pourquoi?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    Tu as spécifié le datacontext de ton usercontrol?

    Sinon, essaie dans le new ou le load de ton UC, de mettre un "Me.DataContext = My.Application.Current" .

  3. #3
    Membre confirmé Avatar de Lelio1407
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    OK, je viens d'écrire dans mon UserControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Binding binding = new Binding();
    binding.Source = App.ProjectFileName;
    NewProject_ProjectNameTextBox.SetBinding(DataContextProperty, binding);
    puis dans mon code XAML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TextBox Name="NewPProject_ProjectNameTextBox" Text="{Binding ProjectFileName}"/>
    Mais cela ne change rien au resultat :

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    J'aurais fait plus simple, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    'Constructeur d'UC
    Sub New()
    Me.DataContext = My.Application.Current
    End Sub
    Et laisser ton 1er code dans le XAML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TextBox Name="NewProject_ProjectNameTextBox" >
         <TextBox.Text>
               <Binding Path="ProjectName"></Binding>
         </TextBox.Text>
     </TextBox>
    En fait, quand tu fais un <Binding Path="ProjectName">, tu indiques qu'il faut aller chercher la valeur dans la Propriété ProjectName de ton DataContext.

    Et par cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.DataContext = My.Application.Current
    Tu indique que ton DataContext est ta classe Application courante.

    Or, comme la première fois, tu n'avais spécifié aucun DataContext à ton UserControl, c'est logique qu'il n'affiche aucune valeur.

  5. #5
    Membre confirmé Avatar de Lelio1407
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    Ok, ça fonctionne très bien!
    Merci!

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

Discussions similaires

  1. [WPF] Peut on mettre une phrase + un binding dans un TextBox?
    Par takinelinfo dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 12/05/2009, 21h02
  2. Affichage dans une textbox
    Par philo71 dans le forum MFC
    Réponses: 25
    Dernier message: 30/01/2006, 09h34
  3. [Javascript] appui sur la touche entrée dans une textbox
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 11h19
  4. Mettre une date par defaut dans une textBox.
    Par yaumme dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/12/2005, 22h39
  5. [c#]Gros text à afficher dans une textbox
    Par famemaur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/05/2005, 10h12

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