코드에서 WPF 컨트롤 유효성 검사 규칙에 액세스



Answers

규칙을 얻기 전에 먼저 바인딩을 가져와야합니다.

    Binding b=  BindingOperations.GetBinding(textboxMin,TextBox.TextProperty);
    b.ValidationRules

그렇지 않으면 BindingExpression을 가질 수 있고 HasError 속성을 확인할 수 있습니다.

 BindingExpression be1 = BindingOperations.GetBindingExpression (textboxMin,TextBox.TextProperty);

be1.HasError
Question

XAML :

  <TextBox Name="textboxMin">
      <TextBox.Text>
          <Binding Path="Max">
              <Binding.ValidationRules>
                  <local:IntValidator/>
              </Binding.ValidationRules>
          </Binding>
      </TextBox.Text>
  </TextBox>

암호:

void buttonOK_Click(object sender, RoutedEventArgs e)
{
    // I need to know here whether textboxMin validation is OK
    // textboxMin. ???

    // I need to write something like:
    // if ( textboxMin.Validation.HasErrors )
    //     return;
}

적어도 하나의 대화 상자 컨트롤이 XAML에서 바인딩을 사용하여 유효성 검사를 통과하지 못하면 OK 단추를 비활성화하는 방법을 알고있는 것이 좋습니다. 이 방법을 사용하면 코드의 유효성 검사 상태를 확인할 필요가 없습니다.