9

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

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

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

(1) 通常的方式是:

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

2 回答 2

9

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

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

于 2009-09-09T20:22:15.387 回答
1

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

于 2009-09-09T20:19:37.793 回答