我有一个对象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事件?欢迎任何干净实施的想法。
答案 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;