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

Framework .NET Discussion :

passer un objet par reference a bindingsource.add()


Sujet :

Framework .NET

  1. #1
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut passer un objet par reference a bindingsource.add()
    Bonjour

    il y a t il moyen de passer un objet existant sous forme de reference a la fonction add d' un bindingsource destine a ne contenir que 1 element .

    Ce afin que les modifications sur les controle utilisant le bindingsource se repercute automatiquement sur l' objet et vice-versa.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Normalement, le binding fait en sorte que si tu modifies, ca modifies l'objet et vice-versa: c'est une fonction de base, pas besoin de passer par un ref.

  3. #3
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    pardon pour ce post inutile , depuis plus de 3 ans , j ai pris l habitude de reinstancier l objet utilise a l element current du bindingsource.

    j avais du avoir une mauvaise experience a mes debuts.

    je testerai pour confirmer et mettrai ce post en resolu

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par ZashOne Voir le message
    pardon pour ce post inutile
    Il n'y a pas de post inutile Et puis, si cela peut répondre à votre question, cela servira sans doute à d'autres personnes

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    Bnjour Thomas

    J ai essaye avec le code suivant

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            System.Windows.Forms.BindingSource personneBindingSource = new BindingSource();
            personne personne = new personne();
            public Form1()
            {
                InitializeComponent();
                this.textBox1.DataBindings.Add("Text", personne, "nom", true);   
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
     
                personneBindingSource.DataSource = typeof(personne);
     
                personneBindingSource.Add(personne);
                MessageBox.Show(personne.nom);
     
                ((personne)personneBindingSource.Current).nom = "nouvellevaleur";
     
                MessageBox.Show(personne.nom);
     
            }
     
        }
     
        public class personne 
        {
            public string _nom;
     
            public personne ()
            {
                _nom = "valeura";
     
            }
            public string nom
            {
                get
                {
                    return _nom;
                }
                set
                {
                    _nom = value;
                }
            }
     
        }
    }
    Effectivemet modifier le bindingsource.current modifie l objet par contre modifier l objet ne modifie pas la propriete text de la textbox. Ect ce un comportement normal ?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Il faut que ton objet implémente l'interface INotifyPropertyChanged si tu veux que ce comportement soit respecté:

    par contre modifier l objet ne modifie pas la propriete text de la textbox

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

Discussions similaires

  1. Passer un objet par valeur et non référence
    Par Pynouz dans le forum C#
    Réponses: 2
    Dernier message: 14/01/2011, 10h42
  2. Réponses: 9
    Dernier message: 09/12/2010, 17h33
  3. [debutant]passer un objet par const reference
    Par Battosaiii dans le forum Débuter
    Réponses: 6
    Dernier message: 12/11/2005, 15h39
  4. [String] passage d'objet par référence
    Par adilou1981 dans le forum Langage
    Réponses: 8
    Dernier message: 01/04/2005, 16h22
  5. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 19h28

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