Maitre/Détail collection binding

thorgal1612 Messages postés 117 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 19 janvier 2008 - 3 avril 2007 à 17:51
thorgal1612 Messages postés 117 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 19 janvier 2008 - 3 avril 2007 à 18:42
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

thorgal1612 Messages postés 117 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 19 janvier 2008
3 avril 2007 à 18:42
Petite précision, mon objet facture à une propriété de type Client.

    public class FactureEntity : IEditableObject
    {         
        private ClientEntity _Client = null;
        ...
0
Rejoignez-nous