【发布时间】:2020-01-10 12:28:40
【问题描述】:
我的项目是带有实体框架的 c# windows 窗体,并且我有带有 TextColumn 的 DataGridView。我想编辑最后一列 TextColumn Cells[3]。 将所有值从数据库获取到 GridView 是没有问题的。我明白了。 而且我可以输入一个新值,但是只要我点击那个地方,它就会变成旧值。文本框没有保留我要编辑的新值。 对于第 3 列中的此单元格,ReadOnly 为 false,因为我可以写入但将新值更改回旧值。 我错过了什么样的事件,我该如何解决这个问题?从某些方面来说,Gridview 的洞似乎被锁定了。请帮忙。
我什至尝试过:
foreach (DataGridViewRow row in dgvOrder.Rows)
{
row.Cells[3].ReadOnly = false;
}
下面是我的代码。
private void Treatments_Load(object sender, EventArgs e)
{
try
{
using (MyHealthEntities db = new MyHealthEntities())
{
var orderd = db.Order.Where(x => x.Ordernr == OrNr).FirstOrDefault();
if(orderd != null)
{
var myOrder = (from u in db.....
join d in ...
join m in ...
where u.....
select new
{
OrderId = m.MedId,
Name = m. Name,
Quality = m.Quality,
Description = d.Description
}
).ToList();
if (myOrder != null)
{
dgvOrder.DataSource = myOrder ;
}
}
foreach (DataGridViewRow row in dgvOrder.Rows)
{
row.Cells[3].ReadOnly = false;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
【问题讨论】:
-
我不太了解 Entity,但也许 this answer 展示如何使用 Entity 绑定到 datagridview 会有所帮助?它需要是一个 BindingList 而不仅仅是一个 List,但答案表明当您绑定到网格时它会自动转换为一个。
标签: c# winforms datagridview