2012-01-24 5 views
0

Я искал этот сайт для проверки данных:Как определить, введен ли пользователем неправильный ввод?

http://codeblitz.wordpress.com/2009/05/08/wpf-validation-made-easy-with-idataerrorinfo/

И это звучит здорово валидацию. Но, например, я понял, что вы можете только проверять данные, когда вход правильный, если есть способ установить сообщение, когда ввод неверен.

I.E. Если у меня есть свойство Age, где есть int, я хочу настроить сообщение об ошибке, чтобы отобразить, где пользователь написал «a» в текстовом поле.

Я имею в виду, свойство Age должно проверять две вещи, вход будет правильным и диапазон.

+0

Ваш вопрос не ясно –

+0

я изменил пост. –

ответ

1

Предполагая, что вы используете привязки данных, необходимо подтвердить ввод с правилами проверок:

<TextBox Name="tb_act_name" 
         Style="{StaticResource formTextBox}" 
         Validation.ErrorTemplate="{StaticResource validationTemplate}"> 
        <TextBox.Text> 
        <Binding Path="act_name" 
          Mode="TwoWay" 
          UpdateSourceTrigger="PropertyChanged" 
          ValidatesOnDataErrors="True"> 
         <Binding.ValidationRules> 
         <local:fieldNullOrEmpty ErrorMessage="Enter Client Name" /> 
         </Binding.ValidationRules> 
        </Binding> 
        </TextBox.Text> 
       </TextBox> 

Вы бы просто добавить дополнительные правила в разделе Binding.ValidationRules. Это довольно большой вопрос, поэтому вы можете проверить MSDN WPF Validation для получения дополнительной справки.

Надеюсь, это указывает на то, что вы в правильном направлении.

+0

На самом деле не нужно использовать ValidationRules, если сам связанный класс поддерживает IDataErrorInfo и соответствующим образом обновляет его после набора свойств. –

+0

Да, но есть ограничения для этого подхода, просто пытаясь ускорить поиск парня – LenPopLilly

0

Вы можете попробовать Karl Shifflett's approach

Или вы можете также добавить (смотрите на WPF Validation for the whole form):

<TextBox.Text> 
<Binding Path="Age" ValidatesOnDataErrors="True"> 
    <Binding.ValidationRules> 
    <rules:NumericRule /> 
    </Binding.ValidationRules> 
</Binding> 
</TextBox.Text>