DataBinding和ErrorProvider - 如何提供自定义错误消息?

DataBinding和ErrorProvider - 如何提供自定义错误消息?

问题描述:

我们使用BusinessObjects,实施IDataErrorInfoIEditableObjectBindingList将这些对象添加到BindingSources中,这些用于绑定窗体上的UserControls和DataGrid(WinForms)。 BindingSource另外被设置为表格的ErrorProvider的数据源。DataBinding和ErrorProvider - 如何提供自定义错误消息?

我们使用当前文本框的类型为int和short的属性。它们在BusinessObjects中通过自定义验证进行了验证,例如最小/最大值等。这很好,因为我们的自定义验证的错误消息很好地显示在TextBox旁边。但是,如果输入大于int的值(例如“9999999999”),BindingSource甚至不会尝试将该值输入到BusinesObject中,而是将错误消息提供给错误提供程序,如“The value for Int32太大了。“我们不想用“Int32”来打扰我们的用户,但需要一个自定义的错误消息。

很好,BindingSource确实提供了这个功能,但是可以为此提供自定义错误消息吗?

您需要将FormattingEnabled属性设置为false以禁用错误处理行为。

像这样:

textBox1.DataBindings.Add("Text", bindingSource1, "IntValue", false, 
    System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged); 
+0

即停止这些自动生成的消息。至少第一步。接下来的事情就是捕捉所有输入,验证它们并提供自定义错误消息。谢谢你。 – 2010-04-14 08:12:46