2010-09-10 4 views
1

J'ai une proposition d'objet qui a une propriété appelée CurrentAgency de l'Agence qui à son tour a agencyId, nom, etc ... quelque chose comme ceci:Comment lier correctement un objet enfant?

Proposal 
    CurrentAgency 
     AgencyID 
     Name 
     Address 
     etc... 

Dans mon interface utilisateur, j'ai un combobox qui répertorie tous disponibles Agences. Je suis lié comme ceci:

private BindingSource bndProposal = new BindingSource(); 
bndProposal.DataSource = typeof(Model.Proposal); 
lkpAgency.DataBindings.Add("EditValue", bndProposal, "CurrentAgency.AgencyID"); 
lkpAgency.Properties.DataSource = FusionLookups.LookupAgencies; 
lkpAgency.Properties.DisplayMember = "Name"; 
lkpAgency.Properties.ValueMember = "ID"; 

Et cela fonctionne assez bien. Si l'utilisateur modifie l'agence, Proposal.CurrentAgency.AgencyID est automatiquement mis à jour. Toutefois, le problème est que le reste des propriétés de l'objet CurrentAgency n'est pas mis à jour.

Quels sont les modèles utilisés pour gérer ce type de situation sans utiliser le code indésirable? Dois-je transmettre l'événement Format à l'objet Binding? Toutes les idées pour une mise en œuvre propre sont les bienvenues.

Répondre

1

Avez-vous essayé ce qui suit?

private BindingSource bndProposal = new BindingSource(); 
bndProposal.DataSource = typeof(Model.Proposal); 
lkpAgency.DataBindings.Add("EditValue", bndProposal, "CurrentAgency"); 
lkpAgency.Properties.DataSource = FusionLookups.LookupAgencies; 
lkpAgency.Properties.DisplayMember = "Name"; 
lkpAgency.Properties.ValueMember = null; 
Questions connexes