编辑datagridview时在哪里捕获未处理的异常

时间:2012-12-11 18:21:57

标签: c# entity-framework data-binding exception-handling datagridview

我有一个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。此属性不能设置为空值”。

1 个答案:

答案 0 :(得分:1)

尝试CellEditEndingCurrentCellChanged事件。

编辑:或者您也可以让属性的setter处理空值..

public int Number
{
  get { return _number; }
  set
  {  
      if (null == value)
      {
          // handle here
      }
  }
}

修改:有关详细信息,请参阅Entity Framework error when submitting empty fields