winforms中的IDataErrorInfo

可以在winforms应用程序中正确使用IDataError信息吗? 在过去,我正在以通常的方式(1)进行绑定,并在特定控件的OnValidating事件中进行validation。 我想将数据validation移动到域模型,以便我可以轻松地交换用户界面,以便所有逻辑都在一个地方。

我正在研究IDataErrorInfo,但我发现的所有内容都与WPF有关,开发中的应用程序严格来说是一个winforms应用程序。

我还注意到在WPF中使用的绑定是在System.Windows.Data中,我一直使用的绑定是在System.Windows.Forms中(当我尝试添加它时,我似乎没有作为一种资源 – 我正在使用3.5)。来自属​​性“ValidatesOnDataErrors”的两者之间有区别吗?

(1)通常的方式是:

myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property")); 

这适用于Windows窗体中的ErrorProvider组件。

有关完整但非常简单的教程,请参阅此博客文章 。

是的, IDataErrorInfo适用于winforms。 例如, DataGridView将自动每行和每个单元使用它。 但它是特定于实现的,并不会自动应用于其他绑定。 我曾经写过一些代码来将它与一个错误提供者联系起来并通过改变事件来完成工作,但我不幸的是没有它。 但我似乎记得它不是很大。