如何正确绑定到子对象?

时间:2010-09-10 18:54:08

标签: c# winforms visual-studio-2008 data-binding

我有一个对象Proposal,它有一个叫做CurrentAgency of Agency的属性,后者又有AgencyID,Name等......这样的东西:

Proposal
    CurrentAgency
        AgencyID
        Name
        Address
        etc...

在我的界面中,我有一个列出所有可用代理商的组合框。我这样绑定了它:

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";

这很有效。如果用户更改了代理商,则会自动更新Proposal.CurrentAgency.AgencyID。但是,问题是CurrentAgency对象的其余属性不会更新。

有些模式用于处理这种情况,而不是用垃圾代码解决问题?我是否在Binding对象上处理Format事件?欢迎任何干净实施的想法。

1 个答案:

答案 0 :(得分:1)

您是否尝试过以下操作?

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;