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

时间:2010-04-01 09:36:38

标签: c# winforms data-binding errorprovider

我们使用BusinessObjects,实现IDataErrorInfoIEditableObject。带有这些对象的BindingList被添加到BindingSources,它们用于绑定表单上的UserControls和DataGrids(WinForms)。 BindingSource还被设置为表格的ErrorProvider的DataSource。

我们目前使用TextBoxes作为Type of Type和short的属性。它们在BusinessObjects中使用自定义验证进行验证,例如最小/最大值等。这很好,因为我们的自定义验证的错误消息很好地显示在TextBox旁边。

但是,如果输入大于int的值(例如“9999999999”),BindingSource甚至不会尝试将该值输入到BusinesObject中,而是将错误消息提供给errorprovider,如“Int32的值”太大了。“我们不想用“Int32”来打扰我们的用户,但是想要一个自定义错误消息。

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

1 个答案:

答案 0 :(得分:1)

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

像这样:

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