Как определить, что пользователь ввел неправильный ввод? - PullRequest
0 голосов
/ 24 января 2012

Я искал этот сайт для проверки данных:

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

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

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

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

Ответы [ 2 ]

1 голос
/ 24 января 2012

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

<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 голосов
/ 24 января 2012

Вы можете попробовать подход Карла Шифлетта

Или вы также можете добавить (посмотрите Проверка WPF для всей формы ):

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