C# ValidationContext无例外

C# ValidationContext无例外,c#,wpf,validation,xaml,C#,Wpf,Validation,Xaml,我试图使用Validator类来帮助我验证一些属性,并在屏幕上以红色显示错误。但是,在视图上以红色进行验证之前,它实际上会在代码中引发异常。是否有任何方法可以阻止抛出异常并在视图中显示错误?谢谢你的建议 [RegularExpression(@"\b^[A-Z][a-zA-Z '&-]*[A-Za-z]$\b", ErrorMessage = "Invalid SSS !")] public string SSS { get {

我试图使用Validator类来帮助我验证一些属性,并在屏幕上以红色显示错误。但是,在视图上以红色进行验证之前,它实际上会在代码中引发异常。是否有任何方法可以阻止抛出异常并在视图中显示错误?谢谢你的建议

    [RegularExpression(@"\b^[A-Z][a-zA-Z '&-]*[A-Za-z]$\b", ErrorMessage = "Invalid SSS !")]
    public string SSS
    {
        get
        {
            return this.sss;
        }
        set
        {
            if (this.sss != value)
            {
                Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = "SSS" });
                this.sss = value;
                NotifyPropertyChanged(x => x.SSS);
            }
        }
    }


<telerik:RadMaskedTextInput AllowInvalidValues="True" Margin="6" Mask="" Placeholder=" " Value="{Binding SSS, Mode=TwoWay,  ValidatesOnExceptions=True}"
                                                         Grid.Column="2" Width="75" x:Name="SSSTextInput" />
[RegularExpression(@“\b^[A-Z][A-zA-Z'&-]*[A-zA-Z]$\b”,ErrorMessage=“无效SSS!”)
公共字符串SSS
{
得到
{
返回此.sss;
}
设置
{
if(this.sss!=值)
{
Validator.ValidateProperty(值,新的ValidationContext(this,null,null){MemberName=“SSS”});
此值为0.sss=值;
NotifyPropertyChanged(x=>x.SSS);
}
}
}

你就不能抓住它吗?呃,这样做有点沉重,特别是如果我有很多房子的话。虽然我考虑过,但似乎不太正确$\b有点过分了\b是单词边界,该模式已使用(^to$)具有边界。我只需要^和W/O字边界,所以你需要考虑使用<代码> IDataErrorInfo < /C>接口,如: