2011-09-08 6 views
3

WPF에서 비동기 MVVM-ish 유효성 검사를 수행하는 것에 대한 권장 사항이 있습니까? INotifyDataErrorInfo에 대해 읽었지만 불행히도 Silverlight에서만 사용할 수 있습니다.WPF 비동기 유효성 검사 모범 사례?

감사합니다.

답변

1

IDataErrorInfo는 WPF의 데이터 유효성 검사 메커니즘입니다. Microsoft의 일관성을 좋아하지 않습니까? ;)

은 다음과 같이 당신의 ViewModel에 IDataErrorInfo 구현 :

이 재산 (일명이 []) 검증의 내부
public class MyViewModel : IDataErrorInfo 
{ 
     public string Error 
     { 
      get { 
       return GetErrorStringForThisViewModelInGeneral(); 
      } 
     } 

     public string this[string columnName] 
     { 
      get 
      { 
       string result = null; 

       switch (columnName) 
       { 
        case "Quantity": 
         if (Quantity <= 0) 
          result = "Quantity must be greater than 1."; 
        break; 
       } 
       return result; 
      } 

} 

, 당신은 EnterpriseLibrary, 속성을 사용하여 사용자 정의 유효성 검사기, 또는 아무것도의 유효성 검사기를 사용할 수 있습니다 너는 좋아한다. 나는 당신이 시작하도록 기본 구현만을 보여줄 것입니다.

+0

죄송합니다. 비동기 유효성 검사 - 웹 서비스를 통해 Quantity가 유효한지 확인합니다. – Alberto

+3

유효성 검사를 비동기로 만들려면 유효성 검사를 수행하기 위해 스레드를 회전시켜야합니다 (응용 프로그램 중단 방지). 그러면 결과가 유효성 검사중인 속성 (예 : Quantity)에서 NotifyPropertyChanged를 반환합니다. 알림이 발생하면 WPF는 필드의 유효성을 다시 검사하므로 사용자가 원격으로 다시 유효성을 검사하지 않도록 조건을 설정할 수 있어야합니다 (마지막 유효성 검사 이후 값이 변경되지 않았으므로). –

+0

그게 내가 생각한거야. 부끄러운 일이라서 그런 상용구 코드가 필요해. ( – Alberto