我正在使用MVVM
。
使用IDataErrorInfo
验证错误的最佳做法是什么?在我的Model或ViewModel中?
用于实施验证的最佳模式是什么?
P.S。我正在使用.NET
3.5。
答案 0 :(得分:5)
我认为没有正确的方法或错误的方法。这完全取决于您的应用程序以及您在WPF应用程序中使用不同的模式或体系结构或是否有特定需求。
如果您使用不同的分层架构,则可以将验证放在应用程序的业务层中。如果是这种情况,请使用This link。
在我的应用程序中,我喜欢将验证放在viewmodel中。显然,在某些情况下,这是一个坏主意,例如;如果在viewmodel中有FirstName属性,则意味着您只限制GUI来验证FirstName属性,但如果有人从其他位置设置它,该怎么办呢。
这一切都归结为您的应用程序和要求的需求。就个人而言,我把它们放在我的ViewModel中,因为它快速而简单。但是对于最佳实践,我建议您通读链接。
我还建议您通读以下链接以便更好地理解;
How to Use Model Validation Rules in WPF ViewModel
OR
Business Layer Validation Sample
希望这有帮助!
答案 1 :(得分:0)
如果将模型绑定到视图,最好使用数据注释和Validator类。如果您绑定到视图模型的属性,则使用IDataErrorInfo进行验证。