C#DataGridView添加一行 – 验证时,如何知道该行是新的还是尚未提交?

前端之家收集整理的这篇文章主要介绍了C#DataGridView添加一行 – 验证时,如何知道该行是新的还是尚未提交?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的客户端在 Windows应用程序中遇到DataGridView问题.他们正在调用CellValidated事件,但是如果它已经提交回数据源,那么他们想要对该单元进行不同的验证,而不是它是第一次添加的行(并且尚未提交(用户)还没有离开行.)我尝试了IsNewRow属性,但是一旦你开始输入行,就会添加另一个“新行”,所以你正在使用的行不再被认为是新行.I知道该行尚未提交,因为您可以点击Esc取消编辑,整行消失.

有没有办法判断当前编辑的行是否实际上是“新行”,因为它尚未提交回数据源?

解决方法

我在过去实现类似的一种方法是利用绑定到列表的对象的id属性.

例如,如果我有一个BindingList< User>用户是这样的:

public class Names
{
    public string Name { get; set; }         
    public int id { get; set; }
}

然后,我可以像这样绑定我的列表:

dataGridView1.AutoGenerateColumns = false;
_users = new BindingList<User>();
_users .Add(new Names() { Name = "joe",id=1 });
_users .Add(new Names() { Name = "pete",id = 2 });

bindingSource1.DataSource = _names;

DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
col1.DataPropertyName = "Name";        

dataGridView1.Columns.Add(col1);

dataGridView1.DataSource = _users;

然后,当DataGridView提供一个新行时,它的id为0(整数的默认值).

来自数据库的每个对象都具有非零ID.

也许有一种方法可以使用BindingSources实现这一点,但我快速查看了那里的属性,没有任何东西跳出来.

原文链接:https://www.f2er.com/csharp/100274.html

猜你在找的C#相关文章