【发布时间】:2011-05-20 12:39:25
【问题描述】:
作为一个新的 WPF 程序员,我找不到两种不同的用户输入验证方式之间的区别:
编写自定义验证规则与实现 IDataErrorInfo 的优缺点是什么,反之亦然?什么时候我应该更喜欢其中一个?
更新:
虽然我已经得到了答案,但我发现 related article 可能对其他人有所帮助。
【问题讨论】:
标签: wpf validation idataerrorinfo
作为一个新的 WPF 程序员,我找不到两种不同的用户输入验证方式之间的区别:
编写自定义验证规则与实现 IDataErrorInfo 的优缺点是什么,反之亦然?什么时候我应该更喜欢其中一个?
更新:
虽然我已经得到了答案,但我发现 related article 可能对其他人有所帮助。
【问题讨论】:
标签: wpf validation idataerrorinfo
IDataErrorInfo
验证规则
我的意见是,对于必填字段验证、电子邮件地址验证等常见验证,您可以使用验证规则。如果您需要进行自定义验证,例如范围验证,或任何自定义验证,请使用 IDataerrorinfo。
【讨论】:
基本上,如果您实现IDataErrorInfo,则在绑定对象中实现验证,而如果您实现验证规则,则在附加到绑定的对象中实现验证。
就个人而言,如果您使用的是 MVVM,我认为您必须疯了才能使用除 IDataErrorInfo 之外的任何东西。您希望验证存在于视图模型中。如果它在您的视图模型中,它是集中的并且是可测试的。如果它在您的视图中,那么您的验证逻辑可能是错误的或缺失的,找到它的唯一方法是手动测试您的视图。这是可避免的错误的巨大潜在来源。
在某些地方使用验证规则是有意义的 - 例如,如果您正在围绕哑对象构建 UI(例如 XmlDataSource)。但对于大多数生产应用程序,我不会靠近它。
【讨论】:
您实现 IDataErrorInfo 以便能够通过 eas 使用数据绑定。您仍然可以构建自定义验证规则。
【讨论】: