我们使用 BusinessObjects,实现IDataErrorInfo
和IEditableObject
. BindingList
将这些对象添加到 BindingSources 中,这些对象用于在表单 (WinForms) 上绑定 UserControls 和 DataGrids。被BindingSource
另外设置为ErrorProvider
表单的 DataSource。
我们目前确实使用 TextBoxes 来表示 int 和 short 类型的属性。它们在 BusinessObjects 内部通过自定义验证进行验证,例如最小/最大值等。这很好用,因为我们的自定义验证形式的错误消息很好地显示在 TextBox 旁边。
但是,如果输入大于 int 的值(例如“9999999999”),BindingSource 甚至不会尝试将该值输入到 BusinesObject 中,而是将错误消息提供给错误提供者,例如“Int32 的值太大."。我们不想用“Int32”来打扰我们的用户,但想要一个自定义的错误消息。
很好,BindingSource 确实提供了此功能,但是否可以为此提供自定义错误消息?