0

처음으로 Validationprovider 컨트롤을 사용하고 있습니다. Ent Lib 설치와 함께 제공되는 ValidationQuickStart 솔루션 예제에서 본 기능을 모방하려고 시도했지만 제한된 성공을 거두었습니다.Enterprise Library 4.0 ValidationProvider 자체 유효성 검사 질문

나는 특성을 검증와 BO 속성을 장식 비즈니스 오브젝트 검증을 기준으로 표시 폼 errorprovider 아이콘을 얻을 수있는 동안 같은 :

<NotNullValidator(MessageTemplate:="Gender must be specified.", RuleSet:="MyRule", Tag:="Gender")> _ 
     Public Shadows Property Gender() As String 
     Get 
      Return MyBase.Gender 
     End Get 
     Set(ByVal value As String) 
      MyBase.Gender = value 
     End Set 
    End Property 

그러나, 나는에 편집을 추가하고 싶었 경우 " SelfValidation "메서드를 사용하면 결과를 양식 컨트롤에 어떻게 묶을 수 있습니까? ?

(In Self Validation) 

If Me.Attornet s Nothing Then 
    Dim result As New ValidationResult("Attorney selection is required", Me, Nothing, Nothing, Nothing) 
    results.AddResult(result) 
End If 

또는 나는 자신의 ** CUSTOM VALIDATOR하여 만든 "다음 비즈니스 개체 속성을 장식하는 유형을 사용해야합니다

이 편집 :

ValidationProvider 제어 의도되지 않은 경우 다음과 같은 교차 제어 유효성 검사의 경우 :

사용자가 비즈니스 옵션 속성 인 Customer.DoYouSmokeCrack As에 해당하는 라디오 버튼 그룹에서 "예"옵션을 선택한 경우 txtHowMuch 컨트롤에는이 필드가 조건부로 필수임을 나타내는 ErrorProvider 아이콘이 표시되어야합니다.

지금이 작업을 수행하는 방법은 자체 유효성 검사 블록에서이 작업을 수행하고 컬렉션에 ValidationResult 개체를 추가 할 때 GUI에서 수동으로 매핑 할 수 있도록 "설명"키 속성을 설정합니다 잘못된 화면 컨트롤로 이동합니다.

더 많은 표준/더 좋은 방법이 있습니까?

답변

2

ValidationProvider을 사용하여 자체 유효성 검사 (또는 다른 교차 속성 유효성 검사)를 사용할 수 없습니다. ValidationProvider이 비즈니스 오브젝트없이 작동하기 때.에 작동하지 않습니다. 하나의 속성에 대해 정의 된 모든 유효성 검사를로드하고 해당 유효성 검사를 사용하여 지정된 컨트롤의 값을 확인합니다.

사용자 정의 유효성 검사기 및 자체 유효성 검사에서 완전히 초기화 된 비즈니스 오브젝트가 작동해야하는 것과 같은 교차 특성 검증.

유효성 검사가 간단하고 단일 속성의 유효성을 검사 할 경우 (데이터베이스 등으로 진행하는 작업을 수행하지 않고) 사용자 지정 유효성 검사 특성을 작성하여 유효성 검사를 수행 할 수 있습니다. 다른 모든 경우에, 사용자가 "저장"을 클릭 한 후에 (아마도 어쨌든 수행 할 것임) 비즈니스 오브젝트를 작성하고 그 시점에서 오브젝트의 유효성을 검증해야합니다. 즉, 사용자가 변경 사항을 커밋 할 때까지 유효성 검사를 지연합니다.

관련 문제