0
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>();

次の行が発生するとすぐに null になります。

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

事前に助けてくれてありがとう

4

1 に答える 1

0

実際には、それは初期化され、何度も何度も破壊され、foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)そして発砲するたびに行われbutton_ChangeStatus_Clickます。ここで、オブジェクト参照はオブジェクトのインスタンスに設定されません。から来た。

たとえば、含まれているクラスのフィールドまたはプロパティを上にして、他の場所で宣言します。そうすれば、どこでも利用でき、割り当てはイベントハンドラー内で行うことができます。

宣言(op top、他のフィールド/プロパティを含む):

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

初期化(コンストラクター内):

bindingList = new BindingList<BugClass>();

割り当て/更新:

どこでも好きな場所に。

于 2013-01-05T15:53:12.087 に答える