我一直用这种方式填充组合框(getRoundingMethodVals()返回一个List <String
&gt;):
comboBoxRounding.DataSource = RateSetupData.getRoundingMethodVals();
...但我在StackOverflow上看到了以下内容:
comboBox1.DataSource = new BindingSource(dict, null);
...这让我想知道我是否应该将代码更改为:
comboBoxRounding.DataSource = new BindingSource(RateSetupData.getRoundingMethodVals(), null);
这是六个一半的其他情况吗?或者一种方式比另一种更有优势?
答案 0 :(得分:1)
取决于你想做什么。如果您只需要填充comboBox以供用户选择值,那么您的第一种方式就可以正常工作。它是一种单向数据流:从lsit到控制。在您的情况下,一个简单的List(Of String)不需要绑定源。
但是,如果您有一个更复杂的对象并希望更改组合框值以更改该对象的值,则可以使用BindingSource。这会创建双向数据流。 (对于这种情况,您可以使用实现许多BindingSource接口的BindingList。)