我有一个Windows Forms应用程序,其中包含一个DataGridView。DataGridView 从数据源填充,数据源是 MyClass 的列表。MyClass 包含一组属性和一个构造函数,如下所示:
public class MyClass
{
public PropertyA{get;set};
public ProppertyB{get;set;}
public ProppertyC{get;Set}
}
然后在主窗体中,我有一个返回列表 myCollection 的方法和一个用"myCollection"填充 DataGridView 的按钮,如下所示:
private void btlLoadDataInDataGrid_Click(object sender, EventArgs e)
{
var headers = GetAllHeaders();//GetAllheaders returns a List<MyClass>
dataGridView1.DataSource = headers;
}
我得到的是一个DataGridView,其中包含原始MyClass中的列。 现在,我希望能够编辑 DataGridView 中的数据,并将此更改提交到 MyClass 属性的实际列表中。有人可以建议什么是最好的方法吗?
编辑DataSource
设置为对象列表的网格并更改任何单元格的值时,行中的基础数据将自动更新。在您的情况下,基础行数据的类型为 MyClass
。
您可以随时使用 DataGridView.DataBoundItem
属性获取更新的行数据。
示例代码:
foreach(DataGridViewRow item in dataGridView1.Rows)
{
MyClass rowData = item.DataBoundItem as MyClass;
if(rowData != null)
{
// Do your stuff
}
}
从数据库填充网格时,数据提交逻辑会有所不同。您必须编写代码以将更改的数据提交到数据库。