我有很多与数据网格的数据源绑定相关的问题。我有一个 DatagridView,我从列表中设置 DataSource
List<Myclass> li = new List<MyClass>();
MyClass O = new MyClass();
O.Name = "Aden";
O.LastName = "B";
O.Id = 12;
li.Add(O);
O = new MyClass();
O.Name = "Li";
O.LastName = "S";
O.Id = 22;
li.Add(O);
Mydgv.DataSource = li;
MyClass 在哪里
public Class MyClass
{
public string Name {get; set;}
public string LastName {get; set;}
public decimal Id {get; set;}
}
现在想向我的 DataGridView 添加一个新行
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
但它不可能引发错误,因为Datagrid 的Datasource与 List 绑定 li绑定。所以我的第一个问题是我怎么能做到这一点?
我的第二个问题是,为此,我制定了一个解决方案来更改我的 List li 并向其添加新数据行,然后将其设置为 datagrid 的数据源,但我认为这不是一个可行的解决方案,还有更好的解决方案吗?
甚至试图通过 CurrencyManager 做到这一点
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[MyGrid.DataSource];
currencyManager1.SuspendBinding();
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
currencyManager1.ResumeBinding();
据我所知,我暂停了 DataGrid 的绑定以向 Grid 提供格式,正如我在我的一篇文章Make Row Visible false中执行的那样。但是为什么在向数据网格中添加行时它在这里不起作用?