WinForms中的IDataErrorInfo

9
可以在winforms应用程序中正确使用IDataErrorInfo吗?过去,我通常会按照惯例(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"));
2个回答

9

+1 了不起的博客文章。解决了我所有目前的困扰。非常感谢你。 - Steven Evers
4
看起来指向 精彩博客文章 的链接已经失效:这使得只有链接作为答案的回答过时了。 - Bjørn-Roger Kringsjå
@Bjørn-RogerKringsjå 实际上这并不是仅有链接的答案。关于 ErrorProvider 的建议使得它可以成为一个没有链接的答案。 - Taryn

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接