2

辞書をリストボックスにバインドしようとすると、ArgumentException が発生します。新しい値メンバーにバインドできません。

次のコードを使用します。誰が何が間違っているのか教えてもらえますか。辞書に i 行を入力すると、正常に機能するため...

this.contactpersonenListBox = new Dictionary<int, string>();

lsContactpersonen.DataSource = new BindingSource(this.contactpersonenListBox, null);
lsContactpersonen.DisplayMember = "Value";
lsContactpersonen.ValueMember = "Key";
4

1 に答える 1

3

ディクショナリ オブジェクトは変更を報告しないため、空のディクショナリをバインドしてもあまり意味がありません。そのため、データ ソースを設定した後にディクショナリに項目を追加しても、ListBox には表示されません。

ただし、エラーを取り除くには、次のように設定してみてください。

BindingSource b = new BindingSource();
b.DataSource = this.contactpersonenListBox;
lsContactpersonen.DisplayMember = "Value";
lsContactpersonen.ValueMember = "Key";
lsContactpersonen.DataSource = b;
于 2012-06-04T18:29:58.150 に答える