ComboBox不在BindingSource中显示项目

时间:2014-07-31 09:52:55

标签: winforms data-binding combobox bindingsource

我绑定了一个ComboBox BindingSource,然后将项添加到BindingSource。不幸的是,这些项目似乎没有添加到ComboBox.Items属性中。我在以下代码中遗漏了什么?

BindingSource bindingSource;
private List<string> tables;

private void button1_Click(object sender, EventArgs e)
{
    string newItemText = "item" + tables.Count;
    tables.Add(newItemText);   // comboBox1.Items.Count does not increase
}

private void Form1_Load(object sender, EventArgs e)
{
    tables = new List<string>();

    bindingSource = new BindingSource();
    bindingSource.DataSource = tables;

    comboBox1.DataSource = bindingSource;
}

1 个答案:

答案 0 :(得分:0)

List<T>不支持更改通知。如果您在设置DataSource后不打算修改列表,List<T>就可以了,当您需要查看列表更新时,请立即使用BindingList<T>ObservableCollection<T>

private BindingList<string> tables = new BindingList<string>();

并且您在tables = new List<string>();方法中不需要Form1_Load行,您可以在声明时初始化它。