我有一个datagridview,它可以数据绑定到Entity Framework“table”:
public ObjectSet<TEntity> tableData { get; private set; }
private BindingSource tableBinding;
public AuxiliaryTableEditor(ObjectSet<TEntity> something)
{
InitializeComponent();
this.tableData = something;
this.tableBinding = new BindingSource();
this.tableBinding.DataSource = tableData;
this.auxiliaryTableEditorGridView.DataSource = tableBinding;
}
这完全没问题。
问题是:如果用户开始编辑/添加行,如果他们进入单元格中的编辑模式,则删除内容,然后选项卡或单击其中,异常(因为大多数db列不允许空值)。这是完全正常和可接受的,但我希望能够捕获并处理这些异常,并且我不知道在哪里/如何捕获它们。
我已尝试在datagridview上使用多个不同的事件处理程序,例如.DataError,.RowValidating以及其他一些我现在还不记得的事情...但我似乎无法赶上讨厌的例外。
非常感谢任何建议!
编辑:我应该补充说,异常通常是这样的:“用户代码未处理ConstraintException。此属性不能设置为空值”。
答案 0 :(得分:1)
尝试CellEditEnding
或CurrentCellChanged
事件。
编辑:或者您也可以让属性的setter处理空值..
public int Number
{
get { return _number; }
set
{
if (null == value)
{
// handle here
}
}
}
修改:有关详细信息,请参阅Entity Framework error when submitting empty fields。