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

时间:2015-04-21 15:13:02

标签: c# wpf validation mvvm

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

2 个答案:

答案 0 :(得分:2)

我在某处写了这个,但我找不到它。再看一遍:) btw string int案例不适用于MVVM,因为你的viewmodel因为绑定异常而无法获取任何信息。

我看到了两种获得所需验证的方法:

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

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

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

答案 1 :(得分:1)

如果您真的想强制用户输入有效的整数,请使用Extended WPF Toolkit中的特定控件,如IntegerUpDown,而不是纯文本框。