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 :

Probleme de Binding source


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut Probleme de Binding source
    Bonjour,

    Je viens à vous car j'ai un problème concernant un datagridview accouplé à des controles pour modifier la ligne en cours.

    Pièce jointe 465821

    Jusqu'à maintenant, c'est bon.
    Maintenant, je souhaite pouvoir modifier:

    -> Le "début" de la ligne N+1 quand "fin" de la ligne N est modifié (avec la même valeur)
    -> Le "fin" de la ligne N-1 quand "début" de la ligne N est modifié (avec la même valeur)

    Donc j'ai codé l'évenement "Currentchanged de la binding source permettant de définir la ligne précedente et la ligne suivante :

    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
     
    private void bindingList_CurrentChanged( object sender, EventArgs e )
            {
                if (bindingList.Position == 0)
                {
                    previous = null;
                    iprevious = -1;
                    next = bindingList.List[1] as TNG;
                    inext = 1;
                }
                else if (bindingList.Position == (bindingList.Count - 1))
                {
                    previous_troncon = bindingList[bindingList.Count - 2] as TNG;
                    iprevious_troncon = bindingList.Count - 2;
                    next_troncon = null;
                    inext_troncon = -1;
                    return;
                }
                else
                {
                    previous = bindingList[bindingList.Position - 1] as TNG;
                    iprevious = bindingList.Position - 1;
                    next= bindingList[bindingList.Position + 1] as TNG;
                    inext_ = bindingList.Position + 1;
                }
            }
    et finalement, j'ai également codé, pour les deux numericupdown, l'evenement ValueChanged

    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
            private void nud_Debut_ValueChanged( object sender, EventArgs e )
            {
                if (previous != null)
                {
                    previous.fValFin = (float)nud_Debut.Value;
     
                    bindingList.ResetItem(iprevious);
                }
            }
     
            private void nud_Fin_ValueChanged( object sender, EventArgs e )
            {
                if (next != null)
                {
                    next.fValDeb = (float)nud_Fin.Value;
     
                    bindingList.ResetItem(inext);
                }
            }
    Le problème vient du faite que quand change de ligne (N -> X) la ligne change, donc les deux numericupdown sont modifiés (suivant la valeur de la ligne X). Le probleme est que l'évenement bindinglist_CurrentChanged arrive après. Ce qui veux dire que le changement de ligne provoque le changement de la valeur de "fin" de la ligne N-1 et de "Début" de la ligne N+1 par rapport à la ligne X.

    Je n'arrive pas à désactiver les deux évenements des numericupdown avant.

    J'espere que j'ai été assez clair.

    Merci de votre aide.
    Cordialement.
    Flow

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Bonjour,

    J'ai peut être une piste.
    Regarde this.datagridview1.SelectedRow.DataBoundItem qui te retourne l'object bindé sur la ligne, tu peux la caster directement dans le type du DataSource.

    Il m'arrive souvent de 'jouer' entre le bindingSource.Current et la datagridview.SelectedRow.DataBoundItem pour résoudre ce genre de problème.
    Je ne sais plus trop, mais je dirais que le bindingSource.Current est modifié avant la datagridview.SelectedRow, idem pour les évènements associés.

    En espérant faire avancer le chilmblique,
    J@ck.

Discussions similaires

  1. Probleme counter strike source
    Par rubis dans le forum Autres Logiciels
    Réponses: 20
    Dernier message: 01/04/2006, 03h12
  2. probleme de bind variable
    Par elbrujo2323 dans le forum Oracle
    Réponses: 7
    Dernier message: 22/02/2006, 13h49
  3. Réponses: 4
    Dernier message: 16/11/2005, 11h22
  4. [wxPython] Problème de 'Bind'
    Par Mr Hyde dans le forum wxPython
    Réponses: 6
    Dernier message: 25/08/2005, 16h53
  5. Problème avec bind
    Par jaabouc dans le forum Réseau
    Réponses: 5
    Dernier message: 12/06/2005, 14h32

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