gpt4 book ai didi

wpf - View 模型实现 IDataErrorInfo 进行验证是个好主意吗?

转载 作者:行者123 更新时间:2023-12-04 11:54:09 25 4
gpt4 key购买 nike

我有一个使用 MVVM 模式的应用程序,我想在用户填写信息时实现验证。

我想使用 IDataErrorInfo,但我不知道我的 View 模型实现该接口(interface)是否是一个好主意,或者我创建一个新类是否更好。使用 IDataErrorInfo 和 MVVM 模式实现验证的最佳方法是什么?

编辑:我看到在某些示例中,实现在模型中(它与 View 模型不同),但在我的情况下,模型基本上是我在创建 edmx 模型时从数据库创建的 POCO 实体 Entity Framework ,所以我想避免修改这个实体的需要,因为如果我不需要更新我的模型,我将不得不再次做这项工作。

谢谢。

最佳答案

将验证逻辑与 UI 分开总是一个好主意。这样,使用 IDataErrorInfo 是正确的。

在 View 模型和模型之间,我更喜欢在 View 模型上实现 IDataErrorInfo,因为 UI 使用了这个接口(interface)。您可以通过直接在测试代码中调用索引器来模拟 UI,但如果您确实需要业务逻辑层中的验证逻辑,那么这样的调用没有多大意义。

在我们的项目中,validation是一个比较独立的组件,可以通过配置同时供表现层和业务逻辑层使用。从 View 模型的角度来看,它非常薄,只包含一个调用和在索引器内部构造验证结果。

此外,另一个考虑因素是 INotifyDataErrorInfo,它由 .Net 4.5 和 Silverlight 提供。它为一个耗时的验证提供了来自一个属性的更多验证结果和异步验证,这是我们计划更新到 .Net 4.5 后想要的。

希望它可以帮助你。

关于wpf - View 模型实现 IDataErrorInfo 进行验证是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17813828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com