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

C# Discussion :

DataBindings TextBox mise à jour


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 68
    Points : 40
    Points
    40
    Par défaut DataBindings TextBox mise à jour
    Bonjour

    J'ai une classe CD avec une propriété int_Order

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private int _int_Order;
     
    public int int_Order
    {
         get { return _int_Order; }
         set { _int_Order = value; }
    }
    Je "bind" la propriété Text d'un TextBox avec cette classe sur cette propriété int_Order
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.txt_Order.DataBindings.Add(new Binding("Text", New_CD, "int_Order"));
    Je mets à jour la valeur de int_Order
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MessageBox.Show(this.txt_Order.Text);
    New_CD.int_Order = 18;
    MessageBox.Show(this.txt_Order.Text);
    Pourtant la la propriété Text du TextBox ne change pas.

    Dois-je ajouter un évènement pour la mise à jour ? Mais dans ce cas quel est l’intérêt du DataBindings si je dois tout faire à la main ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il faut que ta classe CD implémente l'interface INotifyPropertyChanged, et que le setter de ta propriété déclenche l'évènement PropertyChanged:

    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
    22
    23
    24
    25
    26
    class CD : INotifyPropertyChanged
    {
     
        private int _int_Order;
        public int int_Order
        {
             get { return _int_Order; }
             set
             {
                if (value != _int_Order)
                {
                    _int_Order = value;
                    OnPropertyChanged("int_Order");
                }
            }
        }
     
        public event EventHandler PropertyChanged;
     
        protected virtual void OnPropertyChanged(string propertyName)
        {
            EventHandler handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Il faut que ta classe CD implémente l'interface INotifyPropertyChanged, et que le setter de ta propriété déclenche l'évènement PropertyChanged:

    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
    22
    23
    24
    25
    26
    class CD : INotifyPropertyChanged
    {
     
        private int _int_Order;
        public int int_Order
        {
             get { return _int_Order; }
             set
             {
                if (value != _int_Order)
                {
                    _int_Order = value;
                    OnPropertyChanged("int_Order");
                }
            }
        }
     
        public event EventHandler PropertyChanged;
     
        protected virtual void OnPropertyChanged(string propertyName)
        {
            EventHandler handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    Merci beaucoup

Discussions similaires

  1. [AC-2003] Mise à jour d'une liste sur saisie dans une textbox
    Par tarnx dans le forum IHM
    Réponses: 2
    Dernier message: 30/03/2010, 19h05
  2. mise à jour d'un textbox
    Par veriecherie dans le forum IHM
    Réponses: 6
    Dernier message: 07/07/2008, 18h33
  3. Réponses: 2
    Dernier message: 22/05/2008, 15h07
  4. Mise à jour d'une liste déroulante à partir d'un textbox
    Par toonado dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/10/2007, 16h35
  5. mise à jour d'un fichier excel à partir d'un textbox
    Par hachdotnet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/03/2007, 15h59

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