Самый простой способ сделать это, если это возможно, это проверить значение на уровне entity
.
Например, скажем, у нас есть следующая упрощенная Foo
сущность;
public class Foo
{
private readonly int id;
private int type;
private string name;
public Foo(int id, int type, string name)
{
this.id = id;
this.type = type;
this.name = name;
}
public int Id { get { return this.id; } }
public int Type
{
get
{
return this.type;
}
set
{
if (this.type != value)
{
if (value >= 0 && value <= 5) //Validation rule
{
this.type = value;
}
}
}
}
public string Name
{
get
{
return this.name;
}
set
{
if (this.name != value)
{
this.name = value;
}
}
}
}
Теперь мы можем привязаться к нашему DataGridView
a List<Foo> foos
, и мы будем эффективно маскировать любой ввод в "Type" DataGridViewColumn
.
Если это неверный путь, тогда просто обработайтеCellEndEdit
Событие и подтверждение ввода.