2011-01-05 37 views
0

我想用Entlib 5.0验证WPF中的用户输入。我想检查文本框中的值是否是一个数字。使用Entlib 5.0对非文本属性进行WPF验证

我的模型:

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

的XAML:

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

当我设置为texbox Validation.HasError设置为false文本。

任何想法,我可以验证这种情况。

+0

我快速的解决方法是暴露值作为字符串属性和解析字符串,但它的效果并不理想。 – baalazamon 2011-01-05 18:21:38

回答

0

我找到了解决方案。

绑定应该是这样的:

<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>