Проблема правил проверки wpf с текстовым полем - PullRequest
1 голос
/ 08 августа 2011

Я создал класс IntegersValidationRule, который наследуется от ValidationRule. Теперь я не знаю, какой код мне писать в XAML. Вот что у меня есть:

<TextBox Name="defaultTxt"
     Height="23" Width="200">
  <TextBox.Text>
    <Binding UpdateSourceTrigger="PropertyChanged">
      <Binding.ValidationRules>
        <what:IntegersValidationRule/>
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>

Я знаю, что либо я настолько глуп, что не могу понять во многих уроках, что означает свойство Path в Binding, почему мы должны использовать Binding здесь, когда не требуется привязка, и что я должен использовать вместо слова «что» внутри Binding.ValidationRule.

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

what - это xmlns ( см. MSDN ), который должен указывать на пространство имен, в котором объявлен ваш класс правил проверки, например,

xmlns:what="clr-namespace:MyApp.MyValidationRules"

Если вы добавите нет Path ( - как насчет чтения этого, если вы его не понимаете? - ), привязка будет привязана к текущему DataContext , что бы это ни было в вашем случае.

1 голос
/ 08 августа 2011
  • Вопрос 1: валидаторы работают с привязками. Вот почему вы указываете правило для привязки. Как только значение будет обновлено до источника (объекта, к которому привязан элемент управления), правило будет проверено.

  • Вопрос 2: См. H.B. ответ

...