gpt4 book ai didi

wpf - 如何在 MVVM 模型中实现数据验证?

转载 作者:行者123 更新时间:2023-12-04 16:20:14 26 4
gpt4 key购买 nike

我有一个需要数据验证的 MVVM 应用程序。我想将验证保留在模型中,因此该模型可以轻松地与其他 View 模型重用,而无需复制验证代码。大多数使用 WPF 进行数据验证的示例要么在 MVVM 设置中的 View 模型中完成验证,要么在模型直接绑定(bind)到 View 且未使用 View 模型时在模型中完成数据验证。

我想在我的模型中进行数据验证,让 View 模型将我的模型暴露给 View ,并且让 View 仍然能够从模型接收验证反馈。我计划使用 IDataErrorInfo 或 Data Annotations 进行验证。我发现了一些这样做的例子,但是这两种方法似乎都不理想。

完成here使用数据注释,尽管它需要适量的自定义代码。

我喜欢 this使用 IDataErrorInfo 的方法更好,因为它不涉及自定义代码,但是我不知道我是否对所采用的方法感到满意,其中整个模型作为单个属性公开给 View ,而不是只公开所需的单个属性。

有没有更好或更推荐的方法来实现这一点?

最佳答案

您链接的数据注释方法有些多余,因为框架已经具有可绑定(bind)验证规则的概念(参见 Taking data binding, validation and MVVM to the next level)。数据注释方法唯一有用的时候是在完全脱离 UI 的地方进行验证。

除了这两个选项之外,使用 IDataErrorInfo 是您唯一的选择。请注意,您不是“将整个模型作为单个属性公开给 View ”,而是使用接口(interface)将自定义实体公开给绑定(bind)框架 - 有很大的不同。如果您选择此方法,请确保使用资源字符串来保存错误消息,而不是使用硬编码文本。如果您有不同的人处理 View 和 View 模型,则 IDataErrorInfo 方法很有用 - 执行 View 的人不需要了解有关 View 模型的特定验证的任何信息。

关于wpf - 如何在 MVVM 模型中实现数据验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30292278/

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