C# 使用Entlib 5.0对非文本属性进行WPF验证

C# 使用Entlib 5.0对非文本属性进行WPF验证,c#,binding,enterprise-library,C#,Binding,Enterprise Library,我试图用Entlib 5.0验证WPF中的用户输入。我想检查文本框中的值是否为数字 我的模型: public class Customer { [Required(ErrorMessage = "Country is required")] public double Country { get; set; } } Xaml: 当我将文本设置为texbox Validation.HasError时,设置为false 你知道我如何验证这种情况吗。我找到了解决办法 绑定应如下所

我试图用Entlib 5.0验证WPF中的用户输入。我想检查文本框中的值是否为数字

我的模型:

public class Customer
{
    [Required(ErrorMessage = "Country is required")]
    public double Country { get; set; }
}
Xaml:


当我将文本设置为texbox Validation.HasError时,设置为false


你知道我如何验证这种情况吗。

我找到了解决办法

绑定应如下所示:

<Binding Path="Country" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True" ValidatesOnExceptions="True">
   <Binding.ValidationRules>
       <vab:ValidatorRule ValidationSpecificationSource="All" SourceType="{x:Type bl:Customer}" SourcePropertyName="Country"/>
    </Binding.ValidationRules>
</Binding>

我的快速解决方法是将值公开为字符串属性并解析字符串,但这并不理想。
<Binding Path="Country" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True" ValidatesOnExceptions="True">
   <Binding.ValidationRules>
       <vab:ValidatorRule ValidationSpecificationSource="All" SourceType="{x:Type bl:Customer}" SourcePropertyName="Country"/>
    </Binding.ValidationRules>
</Binding>