什么是在Windows窗体中进行验证的最佳方式
关于UI验证,我有一组控件验证器,我只是通过分配控件将它们插入到我需要的地方。你可以使用ErrorProvider显示错误,你所需要的只是封装框架来自动化事情。
首先是ValidatorBase类。使其抽象并继承Component类,以便您可以获得设计时支持。在这里存储一个ErrorProvider的私有实例,并使用类似Template Method模式的东西(创建一个Validate方法,然后调用受保护的抽象DoValidation方法)。在基类的具体实现中,只需重写DoValidation并将您的逻辑放在此处。您可以使用EmptyValidator(检查控件的值是否为空),RegexValidator(使用某些reg。表达式检查控件值),GroupValidator(对某个列表中的每个ValidatorBase实例执行验证),无论您想要什么。
在基础类,你可以添加的东西像性能设计时支持(错误信息,图标,控制,验证等)
EDIT1:现在,关于其他验证,然后在UI ,那就是你的业务层的领域和你的规则。这些东西也有框架/模式,但我认为你在问UI验证。虽然有更多的功能(客户端验证等),但是说实话,我不喜欢他们那么多。虽然有更多的功能(客户端验证,等等),但是ASP.NET有一组类似的验证器。
EDIT3:还要检查: Is there any validation control available in .net win forms like asp.net web form?
一个接口,你可以考虑在寻找与ErrorProvider类一起IDataErrorInfo。我有一个旧的博客文章,提供了DataBinding类和接口的列表,可能有所帮助:Data Binding Classes, Interfaces, and Attributes in Windows Forms 2.0。
你可以尝试更加具体一点。什么样的数据,什么要求等等。它不像是有一个明确定义的验证方法的列表。 – 2010-12-08 21:37:49