在非文本属性上使用Entlib 5.0进行WPF验证

时间:2011-01-05 17:09:23

标签: c# binding enterprise-library

我正在尝试使用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。

我可以如何验证这种情况。

1 个答案:

答案 0 :(得分: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>