문제

나는 아주 간단한 응용 프로그램 WPF 에서는 내가 사용하여 데이터 바인딩을 허용하는 편집의 일부 사용자 지정 CLR 개체입니다.나는 이제 사용자 입력에서 유효성 검증을 때 저장을 클릭합니다.그러나,모든 WPF 책을 읽었는데 정말 없는 헌신은 어떤 공간이 이 문제를 해결합니다.나는 사용자 지정 만들 수 있습 ValidationRules,하지만 내가 궁금하는 경우 이 과잉 업데이트해야 할 책임이 없습니다.

그래서 제 질문은 이것입니다:은 거기에 좋은 샘플 응용 프로그램 또는 문서 어딘가에 보여 주는 제일 연습을 위한 유효성 검증에서 사용자 입력 WPF?

도움이 되었습니까?

해결책

나는 생각이 선호하는 새로운 방법이 사용될 수 있 IDataErrorInfo

자세히보기

다른 팁

MS 의 패턴&사례를 설명서:

데이터 유효성 검증 및 오류 보고

뷰 모델 모델은 종종 을 수행하는 데 필요한 데이터 유효성 검증 과하는 신호 어떤 데이터 유효성 검증 오류를 볼 수 있도록 사용자 할 수 있는 행동을 수정합니다.

Silverlight 및 지원을 제공하 WPF 데이터 관리를 위한 유효성 검사 오류 할 때 발생하는 개인 변화 속성은 컨트롤 에서 보기입니다.에 대한 하나의 속성 는 데이터 바인딩하 제어 뷰 모델 모델할 수 있는 데이터 신호 유효성 검사 오류가 숙박 시설 내에서 setter 거절해서 들어오는 나쁜 값을 던지는 예외입니다.는 경우 이 ValidatesOnExceptions 시설에 데이터 바인딩은 진정한 데이터 바인딩에서 엔진 WPF 및 Silverlight 처리 제외하며 표시 시각적인 큐를 사용자는 거기에 데이터 유효성 검사 오류가 있습니다.

그러나,예외가 발생과 속성에 이 방법야 피할 곳이 가능합니다.대체 를 구현하는 IDataErrorInfo 또는 INotifyDataErrorInfo 인터페이스에서의 볼 또는 모델의 모델 클래스입니다.이러한 인터페이스하도록 허용 뷰 모델 모델을 수행하는 데이터 유효성 검사에 대한 하나 이상의 시설 값을 반환하는 오류 메시지 하도록보기를 사용할 수 있게 통보의 오류가 있습니다.

이 문서에 구현하는 방법을 설명하 IDataErrorInfo 및 INotifyDataErrorInfo.

인종,업그레이드 승리,수집,저는 예외를 사용하여 처리하게 유효성 검사를 수행합니다.그것은 필요한 다음과 같은 단계:

  1. 데이터 바인딩을 표현을 추가해야 합니"ValidatesOnException=True"
  2. 에서 당신 데이터 바인딩하려는 개체를 추가해야 합 DependencyPropertyChanged 핸들러를 확인할 경우 새로운 값을 충족하는 조건-지 않은 경우-당신이 복원하는 개체 오래된 가치(해야 하는 경우)그리고 당신이 던지 예외는 아니다.
  3. 당신의 통제에서 템플릿을 사용하여 표시하기 위한 값이 잘못되었 컨트롤에 액세스할 수 있습니다 오류가 컬렉션 및 디스플레 예외 메시지입니다.

트릭은 여기에 바인딩하는 단체에서 파생 되는 경우.의 간단한 구현 INotifyPropertyChanged 작동하지 않을 것-에서 버그가 있는 프레임워크에 액세스할 수 없는 오류 컬렉션입니다.

도 확인 이 문서.가정으로 Microsoft 출시 엔터프라이즈 라이브러리(v4.0) 에서 자신의 패턴 및 관행은 검증 대상이지만 하나님은 왜 그들지 않았 포함되어 있는 유효성 검사에 대한 WPF 그래서 블로그 포스트는 내가 당신을 지시하여,무엇인지 설명하고자 했기에 적응.희망이 도움이 됩니다!

당신이 관심이 있을 수도 있습에서 BookLibrary 샘플 응용 프로그램의 WPF 응용 프로그램 프레임워크(WAF).그것은 사용하는 방법을 보여줍니다 유효성 검사에서 WPF 및을 제어하는 방법을 저장 버튼을 때 유효성 검사 오류가 존재합니다.

는 경우에 귀하의 비즈니스 클래스가 직접 사용하여 귀하의 UI 를 선택할 만을 사용하 IDataErrorInfo 기 때문에 그것은 논리에 가까운 그들의 소유자입니다.

는 경우에 귀하의 비즈니스 클래스 스텁 클래스에 의해 만들어진에 대한 참조를 WCF/XmlWeb 서비스는 다음을 할 수 없습니다 사용하지 IDataErrorInfo 도에 대한 예외 발생과 함께 사용 ExceptionValidationRule.대신 할 수 있습니다:

  • 사용자 확인 규칙.
  • 를 정의한 부분 클래스에서 당신의 WPF UI 프로젝트를 구현하 IDataErrorInfo.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top