Maitre/Détail collection binding

Signaler
Messages postés
117
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
19 janvier 2008
-
Messages postés
117
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
19 janvier 2008
-
Bonjour,

J'essaye de faire une form qui permet de gérer des clients. Ce client possède des factures.
J'ai un onglet qui contient tous les champs du client (nom, prénom,code postal,...) et un autre onglet qui contient un datagridview qui présente les factures du client.

Je n'utilise pas de dataset mais des objets métiers.
J'ai un objet métier ClientEntity
public class ClientEntity : IEditableObject

{
      private System.String _Client_nom = ""
      private CodepostalEntity _CodePostal = null
;
      private FactureEntityCollection _collectionFacture = null
...
}

Première étape :
J'ai placé par le deigner un bindingsource pour le client :
     Code généré par le Designer
      this
.clientEntityBindingSource
= new System
.Windows
.Forms
.BindingSource(this
.components
);
      this
.clientEntityBindingSource
.DataSource
= typeof (Freya
.ClientEntity
);

      Code que j'ai écrit :
         ClientEntityBindingSource.
DataSource
=
.
_Client     

Pour le client, tout va bien, toutes les données de mon clients s'affiche.




Deuxième étape :


J'ai placé un deuxième bindingsource en le rattachant à ma première source de donnée :
   Code généré par le Designer 
   this

.
bindingSource1

=

new

System

.
Windows

.
Forms

.

BindingSource

(

this


.
components

);
   this

.
bindingSource1

.
DataMember

=
"collectionFacture"
;
   


this



.
bindingSource1
.
DataSource
=


this



.
clientEntityBindingSource
;



Jusque là tout va bien, mon programme s'exécute correctement



Troisième étape :
Toujours par le designer, j'ajoute un datagridview et je l'attache à mon deuxième bindingsource
   Code généré par le Designer :
   ...définition des colonnes

    this
.dataGridView1.DataSource = this.bindingSource1
;

Et maintenant s'il j'exécute mon programme j'ai une exception dans la méthode InitializeComponent à l'instruction this.dataGridView1.DataSource = this.bindingSource1
;
Voici l'exception retournée :
Exception System.ArgumentException was thrown in debuggee:
La propriété DataMember 'CodePostal' est introuvable dans le DataSource.

Je ne comprends pas trop, CodePostal étant une propriété de mon entité Client et non pas Facture

Voilà, c'était un peu long, désolé. J'espère que j'ai été assez clair

Encore merci pour votre aide...

1 réponse

Messages postés
117
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
19 janvier 2008

Petite précision, mon objet facture à une propriété de type Client.

    public class FactureEntity : IEditableObject
    {         
        private ClientEntity _Client = null;
        ...