我正在開發一個內部軟件跟蹤程序,並且每個程序修訂版都分配有一個來自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並且允許這樣做)。您可能會考慮編寫一個自定義的組合框,它可以從常規的組合框中擴展並返回您所需要的組合框。 –