我绑定了一个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;
}
答案 0 :(得分:0)
List<T>
不支持更改通知。如果您在设置DataSource
后不打算修改列表,List<T>
就可以了,当您需要查看列表更新时,请立即使用BindingList<T>
或ObservableCollection<T>
。
private BindingList<string> tables = new BindingList<string>();
并且您在tables = new List<string>();
方法中不需要Form1_Load
行,您可以在声明时初始化它。