作为一名新的WPF程序员,我无法找到验证用户输入的两种不同方式之间的区别:
编写自定义验证规则以实现IDataErrorInfo的优缺点是什么,反之亦然?我何时比较喜欢一个?
更新
虽然我已经得到了答案,但我发现related article可以帮助其他人。
答案 0 :(得分:20)
基本上,如果实现IDataErrorInfo
,则在绑定对象中实现验证,而如果实现验证规则,则验证在附加到绑定的对象中实现。
就个人而言,如果你正在使用MVVM,我认为除了IDataErrorInfo
之外,你必须疯狂地使用任何东西。您希望验证生活在视图模型中。如果它在您的视图模型中,它是集中的,并且它是可测试的。如果它在您的视图中,那么您的验证逻辑可能是错误的或丢失的,找到它的唯一方法是手动测试您的视图。这是可避免的错误的巨大潜在来源。
有些地方使用验证规则是有意义的 - 例如,如果您正在围绕哑对象(例如XmlDataSource
)构建UI。但对于大多数生产应用程序,我不会接近它。
答案 1 :(得分:1)
<强> IDataErrorInfo的强>
验证规则
我的意见是,对于必要的字段验证,电子邮件地址验证等常见验证,您可以使用验证规则。如果您需要进行范围验证等自定义验证,或使用IDataerrorinfo进行自定义验证。
答案 2 :(得分:-1)
您实现IDataErrorInfo以便能够使用数据绑定与eas。您仍然可以构建自定义验证规则。