如何验证 MVVM 样式中的错误数据类型



我相信我在MVVM验证中发现了一个漏洞,或者可能是我对它的理解中的一个漏洞。假设有人在绑定到整数的文本框中输入字母"a"。文本框收到错误,因此不会更改我的视图模型。我的视图模型永远不知道会发生这种情况,因此如果我的视图模型从未被告知问题,我该如何通知我的命令在我的视图模型中禁用。如果发生此类验证错误,有没有办法从视图中禁用按钮?

我在SO的某个地方写了这个,但我没有找到它。再看这里:)顺便说一句,string int情况不适用于 MVVM,因为由于绑定异常,您的视图模型无法获得任何信息。

我看到两种方法可以获得您想要的验证:

  1. 只需在视图模型中使用string属性,当必须转到模型时,只需将string转换为模型类型即可。

  2. 创建行为或"特殊"控件,以便视图中的输入始终"可转换"为视图模型类型。

顺便说一句,我使用第二种方法,因为我必须:)但第一个总是有效的,对我来说似乎更容易。

如果确实要强制用户输入有效的整数,请使用扩展 WPF 工具包中的特定控件(如 IntegerUpDown),而不是纯文本框。

相关内容

  • 没有找到相关文章

最新更新