将ComboBox与List <string> [C#] </string>同步

时间:2012-02-06 08:09:46

标签: c# winforms list combobox synchronization

有没有办法让我的List<string>ComboBox同步?

我想要的是我的ComboBox,根据List的变化自动更新它的内容。

我已尝试使用ComboBox.DataSource属性,但这不会更新ComboBox,它只填充一次,那就是所有,所以......

3 个答案:

答案 0 :(得分:4)

使用BindingSource对象。

 List<string> list = new List<string>();
 BindingSource bsource=new BindingSource();

 //Set list dataSource
 bsource.DataSource = list;
 comboBox1.DataSource = bsource;

 //Now add an element via Binding object
 bsource.Add("One");
 bsource.Add("Two");

或者您可以尝试创建IList的适配器包装器的ArrayList.Adapter方法。

ArrayList项目;

items=ArrayList.Adapter(comboBox1.Items);
items.Add("one");

答案 1 :(得分:2)

尝试将List<string>替换为ObservableCollection<string>

答案 2 :(得分:1)

请查看示例:How to: Create and Bind to an ObservableCollection

有关绑定来源的更多信息:Binding Sources Overview

<强>更新

抱歉,我没有提到您使用的是Windows表单,因此请查看问题:WinForms ComboBox data binding gotcha