我发现ListView对我的程序来说非常慢。因此我决定转移到DataGrid。
在此之前,我只用于列出数据库源中的数据。
我使用以下代码向DataGrid添加新行:
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(MyGrid);
row.Cells[0].Value = "1";
MyGrid.Rows.Add(row);
row.Cells["Category"].Value = "Vegetables";
row.Cells["Item"].Value = "Carrot";
row.Cells["Price"].Value = "12.50";
我使用类似的模式为不同的东西添加新行。如果有更好的方法可以直接将变量添加到数据库中,请告诉我。
我想知道的主要内容是如何编辑单元格数据。
例如,我有以下数据表:
ID ITEM Price
1 item A 100
2 item B 120
3 item C 121
4 item D 103
我想将项目B 的价格值从“ 120 ”更改为“ 210 ”。 我怎么能做到这一点?
在ListView中,我查找了值为项目B 的列,并获取价格的列索引并替换了该值。我怎么能在DataGrid中做同样的事。
我正在使用C#.net
附加说明: 生成的列表是一个动态列表,我需要找到值为 B 的单元格,然后更改相应行的价格列的值。
答案 0 :(得分:0)
为什么不能将数据对象列表绑定到Datagrid,并且只需修改数据对象列表就完成了!
答案 1 :(得分:0)
首先,创建自定义DataTable
DataTable dt = new DataTable();
dt.Columns.Add("Id",typeof(int));
dt.Columns.Add("Item",typeof(string));
dt.Columns.Add("Price",typeof(decimal));
dt.AcceptChanges(); // This is the point, where you can change dataTable items.
并将您的商品添加到DataTable行,例如:
foreach(var rowItem in blabla)
{
object[] row = new object[]
{
rowItem.Id,
rowItem.Item,
rowItem.Price
};
dt.Rows.Add(row);
}
然后将dataTable绑定到gridView
gridView1.DataSource = dt;
现在对gridView所做的更改也会更新你的DataTable:)