Pracuję nad wewnętrznym programem śledzącym oprogramowanie, a każdej wersji programu przypisuje się programistę wiodącego z bazy danych pracowników. Mój prosty model wygląda to tak daleko:Jak powiązać powiązanie Entity Framework z ComboBox?
Początkowo miałem RevisionBindingSource
przedmiot, który był związany z moim Revisions
kolekcji:
Dim container as new EntityContainer
revisionBindingSource.DataSource = container.Revisions
...
dgRevisions.DataSource = revisionBindingSource
dgRevisions.DataMemeber = ""
To działa dobrze, a ja byłem w stanie wiązać się różne wymagane właściwości, takie jak tytuł aplikacji:
lblAppTitle.DataBindings.Add("Text",revisionBindingSource,"Application.Title")
Jednak teraz potrzebuję Co mboBox, którego pozycje są powiązane z listą pracowników, i których wybrana wartość jest związana z głównym programistą aktualnej wersji. Próbowałem tworzenia nowego employeeBindingSource
, ale uświadomiłem sobie, że nie mają wiążącego dla Value
:
employeeBindingSource.DataSource = container.Employees
...
cboLead.DataSource = employeeBindingSource
cboLead.DisplayMember = "Name.Display" 'Name is a complex type'
cboLead.ValueMember = '??
Więc przepisał kilka moich wiązań mieć tylko jeden 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")
to nadal nie nawet zapełnić ComboBox czymkolwiek.
Który wzór jest lepszy dla mnie - dwa różne źródła wiążące lub jeden? Co robię źle w wiązaniu mojego ComboBox? A kiedy zapełni się mój ComboBox, w jaki sposób mogę powiązać aktualną wartość z głównym programistą rewizji?
Przepraszamy za długotrwałe pytanie i dziękuję.
+1 za miłą prezentacji swojej Pytanie –
Co ram UI używasz. WinForms? Dodaj tag, aby uzyskać lepsze odpowiedzi. –
Niektóre płatne kontrole robią to (używam DevExpress i pozwala to zrobić). Możesz rozważyć napisanie niestandardowego combobox, który rozciąga się od zwykłego combobox i który zwraca to, czego potrzebujesz. –