在DataGridView中获取用户添加的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在DataGridView中获取用户添加的行相关的知识,希望对你有一定的参考价值。

我有以下绑定到List的DataGridView:

List<Object> list = new List<Object>();
System.Windows.Forms.DataGridView dataGridView1;
dataGridView1.DataSource = new BindingSource(list, null);
dataGridView1.UserAddedRow += new System.Windows.Forms.DataGridViewRowEventHandler(this.dataGridView1_UserAddedRow);

void dataGridViewMilight_UserAddedRow(object sender, DataGridViewRowEventArgs e) {

    // e.Row.DataBoundItem is always null?
}

如何获取添加到列表中的对象?

答案

我遇到了与DataView绑定的DataGridView的类似问题。我想在创建DataRow时给隐藏文件提供默认值但是从来没有任何绑定项。

我通过处理DataView引发的ListChanged事件(当事件的ListChangedType属性等于ItemAdded时)来解决问题。如果使用BindingList而不是列表或任何实现IBindingList的类,则可以处理相同的事件。

另一答案

提供的DataGridViewRowEventArgs实例的Row属性是新创建的行。

void dataGridViewMilight_UserAddedRow(object sender,
                                      DataGridViewRowEventArgs e) 
{
    DataGridViewRow newRow = e.Row;
}

以上是关于在DataGridView中获取用户添加的行的主要内容,如果未能解决你的问题,请参考以下文章

dataGridView1添加的行数 运行的时候为啥不能直接显示出来?

如何从DataGridView中的行获取DataRow

winform中获取datagridview如何获取选中的行,返回值object

从datagridview中删除所有选定的行

使用数据绑定控件在 DataGridView 中添加行

DataGridView 选择的行到 DataTable