몇 가지 유효성 검사를 설정 한 WPF 응용 프로그램에 여러 텍스트 상자가 있습니다.WPF 유효성 검사 - ValidatesOnTargetUpdated
로드시 응용 프로그램이 WPF 창의 컨트롤이 바인딩되는 클래스를 deserialises합니다.
나는 (예를 들어) 파일이 존재하는지 테스트하는 ValidationRule을 가지고 있습니다. ValidatesOnTargetUpdated를 설정하지 않으면 (바운드) 텍스트 속성을 변경할 때 해당 TextBox의 유효성이 검사되고 빨간색 테두리가 나타나고 오류 메시지가 표시된 툴팁 ({Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}
)이 표시됩니다.
컨트롤이 propertychanged가 아닌 바인딩에서 유효성을 검사하여 ValidatesOnTargetUpdated를 true로 설정하고 디버깅 할 때 validationRule이 실행되는 것을 볼 수 있습니다.
내 문제는 ValidationRule 발생에도 불구하고 ValidatesOnTargetUpdated="True"
일 때 (기본) ValidationTemplate이 무시된다는 것입니다.
툴팁을 볼 수 있습니다 - 올바른 오류 메시지와 함께 표시되지만 테두리가 빨간색으로 표시되지 않습니다. 이것은 무시되는 것 같습니다.
왜 이런 일이 발생하는지 알고 싶습니다.
좋습니다, 저에게 감사드립니다. 내가이 일을 어떻게해야할지 모르겠다. 바인딩 후에 유효성 검사를 강제하는 또 다른 방법이 있습니까? – Drammy
그 요청을 긁어 라 - 데이터 클래스에 대한 자체 유효성 검사를 수행하고 유효성을 나타 내기 위해 추가 컨트롤을 바인딩하기로 결정했습니다. – Drammy
XAML에서 DataContext를 설정하려는 경우 솔루션이 있다고 언급했습니다.DataContext를 설정하기 위해 XAML을 사용할 때 발생하는 InitializeComponent가 호출되기 전에 DataContext를 설정하는 방법을 보여주는 제공된 링크에는 아무 것도 표시되지 않습니다. 이 점에 대해 더 명확하게 설명해 주시겠습니까? –