0

私は現在、ComboBox を利用して、ユーザーが BindingList オブジェクト内に含まれる String オブジェクトの動的リストから選択できるようにするアプリケーションを構築しています。ただし、BindingList はメイン クラスに属する子クラスのメンバーであるため、いくつかの問題が発生しているようです。

ComboBox のデータ ソースが最初にメイン クラス内で次のように設定されている場合:

this.comboBox.DataSource = this.childClass.dataList;

ComboBox の内容は期待どおりに表示されます。ただし、リストの内容が変更されても、ComboBox の内容は更新されません。

BindingList オブジェクトがメイン クラスに属している場合、ComboBox は問題なく更新されます。親クラスは、リストが更新されたことを知らせるイベントを受け取っていないように見えます。

何か案は?

4

1 に答える 1

0

昨年私が尋ねた(そして答えた)同様の質問を見た後:

C# で ComboBox に COM ポートを追加/削除する

、解決策を(再)発見したようです。問題は、文字列がデータ ソースに追加される方法にありました。リストが別のスレッドで拡張されていたため、ComboBox コントロールが更新されているという問題がありました。デリゲートと Invoke() メソッドを利用することで、ComboBox の内容が期待どおりに更新されるようになりました。

于 2012-06-20T15:05:57.953 に答える