gpt4 book ai didi

wpf - 需要关于 MVVM 验证的建议

转载 作者:行者123 更新时间:2023-12-03 10:24:38 24 4
gpt4 key购买 nike

我正在将我现有的应用程序之一转换为 MVVM 模式以改进其结构,但我对什么是进行数据验证的最佳方式感到有些困惑。

目前,该应用程序使用数据绑定(bind)来链接 UI 和代码,并使用一些验证规则和值转换器,这些规则和值转换器可以在相似的值上重复使用(每个用于日期等)。

在阅读 MVVM 时,我遇到了 IDataErrorInfo,我觉得它很有吸引力,因为它会将验证排除在 View 之外,从而在设置绑定(bind)等时略微减少重复代码,并允许更具体的错误消息。

另一方面,如果验证失败,ValidationRules 会阻止绑定(bind)数据的传输,这是我需要的,因为我只希望模型值更改一个新的有效值。

我主要担心的是,如果我在 View 模型中限制太多,这会使 View 中的事情变得困难 - 在一般情况下将事物限制在舒适的水平,然后补救需要更多灵 active 的特定情况是否是个好主意风景?

所以我的主要问题是,将验证和转换放在 View 模型的属性中还是坚持我的验证规则和值转换器(或两者之间的某种折衷)会更好吗?

最佳答案

我在 View 模型中实现了所有验证,使用 IDataErrorInfo ,并让 View 模型根据属性是否有效来决定是否应该将属性更改传递给模型。所以一个典型的二传手看起来像:

public string Value
{
set
{
if (value == _Value)
{
return;
}
_Value = value;
Validate("Value");
if (Error["Value"] == null)
{
Model.Value = value;
}
OnPropertyChanged("Value");
}
}

我从来没有在 View 中实现过验证或值转换。这简直是​​自找麻烦。

关于wpf - 需要关于 MVVM 验证的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4265792/

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