将DataSource设置为Datagridview后添加一行

 Tsu_Hsien_945 发布于 2023-02-12 12:22

我有很多与datagrid的数据源绑定有关的问题.我有一个DatagridView,我从列表中设置DataSource

List li = new List();

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与列表绑定.所以我的第一个问题是我怎么能这样做?

我的第二个问题是,为了做到这一点,我提出了一个解决方案来改变我的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的Binding以向Grid提供格式,因为我在我的帖子Make Row Visible中执行了false.但是为什么在向datagrid添加行时它不起作用?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有