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

C# 如何验证MVVM样式中的错误数据类型?,c#,wpf,validation,mvvm,C#,Wpf,Validation,Mvvm,我相信我在MVVM验证中发现了一个漏洞,或者在我对它的理解中发现了一个漏洞。假设某人在绑定到整数的文本框中输入字母“a”。文本框获取错误,因此不会更改我的视图模型我的视图模型从不知道会发生这种情况,因此,如果从未通知我的视图模型该问题,我如何通知命令在视图模型中禁用。如果出现这种验证错误,有没有办法从视图中禁用按钮?我在SO的某个地方写了这篇文章,但没有找到它。再次查看此处:)顺便说一句,stringint案例不适用于MVVM,因为您的viewmodel由于绑定异常而无法获取任何信息 我看到了两

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

我在SO的某个地方写了这篇文章,但没有找到它。再次查看此处:)顺便说一句,
string
int案例不适用于MVVM,因为您的viewmodel由于绑定异常而无法获取任何信息

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

  • 只需在viewmodel中使用
    字符串
    属性,当您必须转到模型时,只需将
    字符串
    转换为您的模型类型

  • 创建行为或“特殊”控件,以便视图中的输入始终“可转换”为viewmodel类型


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

    我在某处写了这篇文章,但是我没有找到它。再次查看此处:)顺便说一句,
    string
    int案例不适用于MVVM,因为您的viewmodel由于绑定异常而无法获取任何信息

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

  • 只需在viewmodel中使用
    字符串
    属性,当您必须转到模型时,只需将
    字符串
    转换为您的模型类型

  • 创建行为或“特殊”控件,以便视图中的输入始终“可转换”为viewmodel类型


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

    我在某处写了这篇文章,但是我没有找到它。再次查看此处:)顺便说一句,
    string
    int案例不适用于MVVM,因为您的viewmodel由于绑定异常而无法获取任何信息

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

  • 只需在viewmodel中使用
    字符串
    属性,当您必须转到模型时,只需将
    字符串
    转换为您的模型类型

  • 创建行为或“特殊”控件,以便视图中的输入始终“可转换”为viewmodel类型


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

    我在某处写了这篇文章,但是我没有找到它。再次查看此处:)顺便说一句,
    string
    int案例不适用于MVVM,因为您的viewmodel由于绑定异常而无法获取任何信息

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

  • 只需在viewmodel中使用
    字符串
    属性,当您必须转到模型时,只需将
    字符串
    转换为您的模型类型

  • 创建行为或“特殊”控件,以便视图中的输入始终“可转换”为viewmodel类型



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

    如果你真的想强制用户输入一个有效的整数,请使用一个特定的控件,例如,从中的IntegerUpDown,而不是纯文本框。

    如果你真的想强制用户输入一个有效的整数,使用特定控件,如中的IntegerUpDown,而不是纯文本框。

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

    如果确实要强制用户输入有效整数,使用特定的控件,例如来自的IntegerUpDown,而不是纯文本框。

    查看NotifyOnValidationError。您可能还对绑定验证的此引用感兴趣:。他们似乎将文本框绑定到int,例如:)@jfin3204,NotifyOnValidationError显然在WPF中不可用。这似乎只是Silverlight的事情。为什么不将验证移到视图模型上呢?如果ValueIsInvalidHyletitininthefirstPlace?请查看NotifyOnValidationError。您可能还对绑定验证的此参考感兴趣:。他们似乎将文本框绑定到int,例如:)@jfin3204,NotifyOnValidationError显然在WPF中不可用。这似乎只是Silverlight的事情。为什么不将验证移到视图模型上呢?如果ValueIsInvalidHyletitininthefirstPlace?请查看NotifyOnValidationError。您可能还对绑定验证的此参考感兴趣:。他们似乎将文本框绑定到int,例如:)@jfin3204,NotifyOnValidationError显然在WPF中不可用。这似乎只是Silverlight的事情。为什么不将验证移到视图模型上呢?如果ValueIsInvalidHyletitininthefirstPlace?请查看NotifyOnValidationError。您可能还对绑定验证的此参考感兴趣:。他们似乎将文本框绑定到int,例如:)@jfin3204,NotifyOnValidationError显然在WPF中不可用。这似乎只是Silverlight的事情。为什么不将验证移到视图模型上呢?在MVVMMaskedTextBoxesareUsefulTooIfValueInvalidHyletitininthefirstPlace?+1我在其他项目中使用过该控件,这是它在MVVMMaskedTextBoxesareUsefulTooIfValuedHyletitininthefirstPlace中的正确位置。我喜欢。它不能很好地与触摸界面配合使用,这就是为什么我不能在这里使用它的原因。那么为什么不更新控制模板,使其更便于触摸呢。在我看来