编辑和提交 DataGridView 单元格更改(绑定到对象列表)



我有一个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
    }
}

从数据库填充网格时,数据提交逻辑会有所不同。您必须编写代码以将更改的数据提交到数据库。

最新更新