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 :

DataGridViewComboBoxColumn binding objects


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut DataGridViewComboBoxColumn binding objects
    Bonjour,

    Je travaille avec des classes que je lie à un datagridview en glissant déposant ma source de donnée alimentée par ma classe.

    Ma classe a des propriétés qui sont de type Enum.

    J'ai donc été dans les propriétés du datagridview ainsi crée, et j'ai modifié le type de colonne dans les propriétés des colonnes correspondantes.

    J'ai crée un FonctionbindingSource avec son datasource pompé dans l'Enum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FonctionBindingSource.DataSource = [Enum].GetNames(GetType(FonctionBase))
    J'ai indiqué ce datasource dans la fenêtres propriétés de la colonne.

    Quand je lance le projet en débug, un fenetre d'exception apparait m'indiquant que la valeur DataridViewComboBoxCell n'est pas valide.

    Mon code de FormLoad est:

    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
     
     Public MesMesures As New List(Of Mesure)
     Private Sub MonNorma_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            FonctionBindingSource.DataSource = [Enum].GetNames(GetType(FonctionBase))
     
            Dim MaColonneFonction As DataGridViewComboBoxColumn = MesureDataGridView.Columns.Item(0)
     
            With MaColonneFonction
                .ValueType = GetType(FonctionBase)
                'MsgBox(.CellType.ToString)
            End With
            If MesMesures.Count = 0 Then
                Dim MaMesure As New Mesure
                With MaMesure
                    .Fonction = FonctionBase.Vrms
                    .Phase = PhaseBase.Phase_1
                    .Modifier = 0
                End With
                MesMesures.Add(MaMesure)
            End If
            MesureBindingSource.DataSource = MesMesures
        End Sub


    Quelles sont mes erreurs et ou mes oublis?

    Merci d'avance pour vos réponses

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Peut-on voir l'erreur précise ? Sinon je vois que tu renseignes automatiquement une ligne s'il n'y en a aucune, le problème survient que quand tu as des lignes ou tout le temps ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut RE
    J'ai rajouté ceci, car le message d'exception me proposait de traiter le DataError

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub MesureDataGridView_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles MesureDataGridView.DataError
            Dim MaMesure As New Mesure
            MaMesure = MesureBindingSource.Item(0)
            MaMesure.Modifier = 0
            MaMesure.Phase = PhaseBase.Phase_1
            MaMesure.Fonction = FonctionBase.Vrms
     
        End Sub
    Maintenant, çà ne plante plus, mais mes comboboxs sont vides.
    Si je mets un point d'arret sur le End Sub, je vois que l'event DataError
    est détecté en permanence, je suis obligé de cliquer constemment sur "Continuer"

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Et répondre ?

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut re
    Et répondre ?
    En fait, je crois qu'il y a des propriétés de la colonneComboBox dont je ne maitrise pas les règles.
    ValueMember et DisplayMember.
    Dnas mon cas, comment les remplir?
    J'ai bien trouvé des exemples, mais je n'ai pas tout compris.
    Y-a-t-il un bon tuto sur l'emploi que je veux faire du datagridview?
    D'habitude, j'arrive à m'en sortir avec le cours de VBnet de ce site, mais là, le datagridview tel que je veux le coder n'est pas expliqué.

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Quelle est l'erreur ? avec son message et tout...

    Sinon peux-tu me dire où tu donnes la datasource de ta comboboxcolumn ?

    Pour reprende un peu :
    Tu as des données dont une des données est de type FonctionBase (qui est un enum)
    Tu veux afficher ces données dans une datagridview
    Tu as donc placé une comboboxcolumn pour la donnée de type enum
    Il faut donner une datasource à cette comboboxcolumn (qui fonctionne comme la combobox).
    Cette datasource doit être la liste des valeurs de ton énumération, la combo affichera dans ce cas la liste des valeurs. Après pour faire plus joli à l'affichage, il y a des possibilités, il faut garder à l'esprit que la datagridviewcomboboxcolumn fonctionne comme une combobox normale, donc une recherche sur binder une enum sur une combo devrait te donner pas mal de résultat.

Discussions similaires

  1. [Windows Phone 8] Binding object Image
    Par iguins dans le forum Windows Phone
    Réponses: 4
    Dernier message: 16/04/2013, 19h32
  2. binding ArrayCollection vers un tableau d'Object
    Par julien.63 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 04/12/2009, 11h47
  3. Binding object DataProvider Combobox
    Par richton95 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 05/08/2009, 10h24
  4. Binding object DataProvider
    Par richton95 dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 26/05/2009, 17h35
  5. [Resource] Comment réussir un Binding sur un object string vide ?
    Par ikeas dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 02/10/2008, 12h56

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