私は社内のソフトウェア追跡プログラムで作業しています。各プログラムリビジョンには、従業員データベースのリードプログラマが割り当てられています。私の単純なモデルは、これまでのようになります。これがうまく働いた、と私はに結合することができたエンティティフレームワークの関連付けをコンボボックスにバインドするにはどうすればよいですか?
Dim container as new EntityContainer
revisionBindingSource.DataSource = container.Revisions
...
dgRevisions.DataSource = revisionBindingSource
dgRevisions.DataMemeber = ""
:
は当初、私は私のRevisions
コレクションにバインドされたRevisionBindingSource
オブジェクトを持っていました
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 = '??
だから私は1 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に何かを設定することさえできます。
2つの異なるバインディングソース、または1つのパターンを使用する方がよいでしょうか?私のComboBoxをバインドする際に間違っているのは何ですか?そして、私のComboBoxが一旦設定されると、現在の値をリビジョンのリードプログラマにバインドするにはどうしたらいいですか?
長時間の質問のため、申し訳ありません、ありがとうございます。
1あなたの質問 –
何UIフレームワークの素敵なプレゼンテーションのために使用しています。 WinForms?より良い回答を得るためにタグを追加してください。 –
いくつかの有料コントロールはそれを行います(私はDevExpressを使用しており、これを実行できます)。あなたは通常のコンボボックスから拡張し、必要なものを返すカスタムコンボボックスを書くことを検討するかもしれません。 –