我正在开发一个内部软件跟踪程序,并且每个程序修订版都分配有一个来自Employee数据库的铅程序员。我简单的模型看起来像这样至今:如何将实体框架关联绑定到组合框?
起初,我不得不将其绑定到我的Revisions
集合RevisionBindingSource
对象:
Dim container as new EntityContainer
revisionBindingSource.DataSource = container.Revisions
...
dgRevisions.DataSource = revisionBindingSource
dgRevisions.DataMemeber = ""
这个工作好,我是能够绑定到我需要的各种属性,例如应用标题:
lblAppTitle.DataBindings.Add("Text",revisionBindingSource,"Application.Title")
但是,我现在需要一个Co mboBox的项目被绑定到员工列表,并且其选定的值绑定到当前版本的主程序员。我试图使一个新的employeeBindingSource
,但意识到,我没有结合部为Value
:
employeeBindingSource.DataSource = container.Employees
...
cboLead.DataSource = employeeBindingSource
cboLead.DisplayMember = "Name.Display" 'Name is a complex type'
cboLead.ValueMember = '??
所以我改写了我的一些绑定到只有一个bindingSource
:
bindingSource.DataSource = container
...
dgRevisions.DataSource = bindingSource
dgRevisions.DataMemeber = "Revisions"
...
cboLead.DataSource = bindingSource
cboLead.DisplayMember = "Employees.Name.Display"
cboLead.ValueMember = "Employees"
...
lblAppTitle.DataBindings.Add("Text",bindingSource,"Revisions.Application.Title")
这还不甚至用任何东西填充组合框。
哪种模式更适合我使用 - 两种不同的绑定源,或一种?我在绑定我的ComboBox时做了什么错误?而且一旦我的组合框填充,我怎样才能将当前值绑定到修订版的主要程序员?
对不起,这个冗长的问题,谢谢。
+1您的问题 –
什么UI框架的漂亮的演示您使用。的WinForms?添加标签以获得更好的答案。 –
一些付费控件可以做到这一点(我正在使用DevExpress并且允许这样做)。您可能会考虑编写一个自定义的组合框,它可以从常规的组合框中扩展并返回您所需要的组合框。 –