C# 编辑datagridview单元格不工作

C# 编辑datagridview单元格不工作,c#,data-binding,datagridview,C#,Data Binding,Datagridview,我填充了我的datagridview,但是现在 我不能编辑我的数据 这是我的代码: BindingSource b = new BindingSource(); string cus1 = getCustomers.getCustomersApi(); RootObject cus = JsonConvert.DeserializeObject<RootObject>(cus1); dataGridView2.Columns.Clear(); AddCheckBoxForData

我填充了我的datagridview,但是现在 我不能编辑我的数据

这是我的代码:

BindingSource b = new BindingSource();

string cus1 = getCustomers.getCustomersApi();
RootObject cus = JsonConvert.DeserializeObject<RootObject>(cus1);

dataGridView2.Columns.Clear();
AddCheckBoxForDataGridViewCustomer();
//  DataGridViewButtonColumn bc = new DataGridViewButtonColumn();
// dataGridView2.Columns.Add(bc);

var result = cus.Rows.Select(r => new
    {
        CustomerId = r.CustomerId,
        Name = r.Name,
        Code = r.Code,
        Address = r.Address,
        PostalCode = r.PostalCode,
        City = r.City,
        Country = r.Country.Name,
        TaxNumber = r.TaxNumber,
    }).ToList();

// dataGridView2.DataSource = result;
// dataGridView2.EditMode = DataGridViewEditMode.EditOnEnter;

b.DataSource = result;
dataGridView2.DataSource = b;
dataGridView2.ReadOnly = false;

有人能帮我吗?

您正在将网格绑定到匿名类型的对象列表

但是匿名对象是不可变的

绑定工作正常,无法编辑单元格中的值

创建具有相同属性(而不是字段!)(
CustomerId
Name
等)的类(比如
CustomerGridModel
),并将网格绑定到
列表

dbConnect.connection.Open();
adapter = new MySqlDataAdapter("select * from " + dbConnect.tableCustomer + "", dbConnect.connection);
ds = new System.Data.DataSet();
adapter.Fill(ds);
dataGridView2.DataSource = ds.Tables[0];
BindingSource b = new BindingSource();

string cus1 = getCustomers.getCustomersApi();
RootObject cus = JsonConvert.DeserializeObject<RootObject>(cus1);

dataGridView2.Columns.Clear();
AddCheckBoxForDataGridViewCustomer();

var result = cus.Rows.Select(r => new
    CustomerGridModel
    {
        CustomerId = r.CustomerId,
        Name = r.Name,
        Code = r.Code,
        Address = r.Address,
        PostalCode = r.PostalCode,
        City = r.City,
        Country = r.Country.Name,
        TaxNumber = r.TaxNumber,
    }).ToList();

b.DataSource = result;
dataGridView2.DataSource = b;
dataGridView2.ReadOnly = false;
public class CustomerGridModel
{
    public int CustomerId { get; set; }
    public string Name    { get; set; }
    // etc
    public string TaxNumber { get; set; }
}