0

この方法でコンボボックスにデータを入力してきました (getRoundingMethodVals() は List <String> を返します):

comboBoxRounding.DataSource = RateSetupData.getRoundingMethodVals();

...しかし、StackOverflowで次の回答を見ました:

comboBox1.DataSource = new BindingSource(dict, null);

...コードを次のように変更する必要があるかどうか疑問に思います。

comboBoxRounding.DataSource = new BindingSource(RateSetupData.getRoundingMethodVals(), null);

これは、6/15 ダースの状況ですか? それとも、一方の方法が他方よりも強力な利点を保持していますか?

4

1 に答える 1

1

何をしたいかによります。ユーザーが値を選択できるようにコンボボックスに入力するだけでよい場合、最初の方法は非常にうまく機能します。これは、lsit からコントロールへの一方向のデータ フローです。あなたの場合、単純な List(Of String) にはバインディング ソースは必要ありません。

ただし、はるかに複雑なオブジェクトがあり、コンボボックスの値を変更してそのオブジェクトの値も変更する場合は、BindingSource を使用します。これにより、双方向のデータ フローが作成されます。(このシナリオでは、多くの BindingSource インターフェイスを実装する BindingList を使用できます。)

于 2012-07-16T22:59:30.373 に答える