0

我一直在以这种方式填充组合框(getRoundingMethodVals() 返回一个列表<String>):

comboBoxRounding.DataSource = RateSetupData.getRoundingMethodVals();

...但我在 StackOverflow 上看到了以下答案:

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

...这让我想知道是否应该将代码更改为:

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

这是一个六分之一的其他情况吗?还是一种方式比另一种方式具有强大的优势?

4

1 回答 1

1

取决于你想做什么。如果您只需要填充组合框以供用户选择一个值,那么您的第一种方法效果很好。这是一种单向数据流:从 lsit 到 control。在您的情况下,一个简单的 List(Of String) 不需要绑定源。

但是,如果您有一个更复杂的对象并希望更改组合框值以更改该对象的值,则可以使用 BindingSource。这将创建双向数据流。(对于这种情况,您可以使用实现许多 BindingSource 接口的 BindingList。)

于 2012-07-16T22:59:30.373 回答