在DataGridView中获取用户添加的行

时间:2015-02-16 22:27:10

标签: c# winforms

我有以下DataGridView绑定到List:

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?
}

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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