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

VB.NET Discussion :

[VS2005] Databinding execute plusieurs fois la methode SET


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Par défaut [VS2005] Databinding execute plusieurs fois la methode SET
    Bonjour,

    Je crée un composant global, une instance de classe Personne, et je fais un DataBinding.add() entre mon composant global, et une propriete à moi de mon formulaire. Le probleme est que le SET de ma propriété est éxécutée 2 fois après avoir fais le DataBinding ? ? ? J'aimerais savoir pourquoi . Merci

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Public Class Form2
        Implements System.ComponentModel.INotifyPropertyChanged
     
    #Region "*** MEMBRES PUBLICS "
     
        Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
     
    #End Region
     
    #Region "*** PROPRIETES "
     
        Private _LastName As String
        Public Property LastName() As String
            Get
                Return _Lastname
            End Get
            Set(ByVal value As String)
                Me._LastName = value
                Me.TextBox1.Text = value
                RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("LastName"))
            End Set
        End Property
     
        Private _FirstName As String
        Public Property FirstName() As String
            Get
                Return _FirstName
            End Get
            Set(ByVal value As String)
                Me._FirstName = value
                Me.TextBox2.Text = value
                RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("FirstName"))
            End Set
        End Property
     
        Private _Anniversaire As Date
        Public Property Anniversaire() As Date
            Get
                Return _Anniversaire
            End Get
            Set(ByVal value As Date)
                Me._Anniversaire = value
                Me.TextBox3.Text = value.ToString
                RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("Anniversaire"))
            End Set
        End Property
     
    #End Region
     
    #Region "*** CONSTRUCTEURS "
     
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
            SetBinding()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
     
        End Sub
     
    #End Region
     
    #Region "*** METHODES "
     
        Private Sub SetBinding()
     
            With Me.DataBindings
     
                .Clear()
     
                ' my_personne est une instance global d'une classe Personne
                ' comportant un Nom, un Prenom, une Date de naissance
                .Add("LastName", my_personne, "Nom")
                .Add("FirstName", my_personne, "Prenom")
                .Add("Anniversaire", my_personne, "Anniversaire")
     
            End With
     
     
     
     
     
        End Sub
     
    #End Region
     
    End Class

  2. #2
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    La meilleure facon c'est de mettre une pause dans le code et d'inspecter la pile des appels de fonctions (call stack) c'est un onglet de visual studio dispo pendant le deboggage

    Tu pourra voir s'il s'agit d'un evenement d'un controle ou la soupe interne du binding qui appelle la mise a jour une seconde fois

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Par défaut
    J'avais déjà regardé la pile d'appel, mais je comprend alors bien le premier databinding, qui est provoqué par le code evenement RaiseEvent de ma propriété, mais je ne comprend pas d'oùu sort le deuxième evenement, car dans la pile d'appel, l'evenement précédent, et le Application.Run(de mon formulaire principale) ... ?!?

Discussions similaires

  1. Executer plusieurs fois un sous-vi dans un vi
    Par GLDRX dans le forum LabVIEW
    Réponses: 6
    Dernier message: 10/06/2010, 15h58
  2. onload s'execute plusieurs fois
    Par haskouse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/09/2009, 16h14
  3. [VBA-E]Methode pour trouver une valeur qui apparait plusieur fois
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2006, 13h11
  4. [VBA-W] Executer plusieurs fois la même procédure
    Par delamarque dans le forum VBA Word
    Réponses: 3
    Dernier message: 05/12/2005, 13h39
  5. code qui s'execute plusieurs fois
    Par khelif dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 21h56

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