在DataGridView中获取用户添加的行

问题描述 投票:1回答:2

我有以下绑定到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?
}

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

c# winforms
2个回答
1
投票

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

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


0
投票

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

void dataGridViewMilight_UserAddedRow(object sender,
                                      DataGridViewRowEventArgs e) 
{
    DataGridViewRow newRow = e.Row;
}
© www.soinside.com 2019 - 2024. All rights reserved.