从BindingSource获取数据后,BindingList变为null

时间:2013-01-05 06:01:25

标签: c# bindingsource bindinglist

private void button_ChangeStatus_Click(object sender, EventArgs e)
{
    foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
    {
        BindingList<BugClass> bindingList = new BindingList<BugClass>();
        bindingList = this.bindingSource.DataSource as BindingList<BugClass>;

        bindingList[item.Index].Status = txtBox_StatusChange.Text;
    }
}

我不断收到“对象引用未设置为对象的实例”。 我知道这是因为它没有初始化,但是, 它在这里被初始化,表明有一个空类:

BindingList<BugClass> bindingList = new BindingList<BugClass>();

然后一旦出现以下行就变为空:

bindingList = this.bindingSource.DataSource as BindingList<BugClass>;

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

实际上,每次foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)点火时,它都会被初始化,一次又一次地被摧毁。button_ChangeStatus_Click。 这就是 Object引用未设置为对象实例的地方。来自。

在其他地方宣布,例如将包含类的字段或属性放在首位。这样,它随处可用,分配可以在事件处理程序中发生。

声明(op top,包含其他字段/属性):

private BindingList<BugClass> bindingList { get; set; }

初始化(在构造函数中):

bindingList = new BindingList<BugClass>();

作业/更新:

无论你想要什么。