2014-10-04 3 views
0

저는 Xamarin과 MvvmCross를 사용하여 모바일 앱을 작성하는 법을 배우기 시작했습니다. 나는 YouTube에서 MvvmCross 비디오의 N + 1 일 (Stuart Lodge에 거대한 감사)을 포함하여 큰 지원으로 기본을 선택하는 것이 아주 쉽다는 것을 알게되었습니다.mvvmcross를 사용하여 유효성 검사를 수행하는 방법

그러나 나는 발의 자료로 고심하고 있습니다. Stackoverflow의 누군가가 MvvmCross를 사용하여 유효성 검사를 수행하는 데 유용한 블로그 나 튜토리얼의 지시를 받길 바란다. 입력 된 데이터의 유효성을 검사하고 문제를 나타내는보기를 업데이트하려고합니다.

내가 모르는 것을 모르기 때문에 나는 첫 번째 원칙에서 무엇인가를 필요로한다. 따라야 할 모범 사례가 필요합니다.

답변

1

데이터 유효성 검사는 UI에 여러 가지 방식으로 표시 할 수 있습니다. 예를 들어, 메시지 상자를 표시하거나 레이블을 표시 할 수 있습니다.

UI의 어딘가에 빨간색 텍스트가있는 레이블을 사용하여 오류를 표시한다고 가정합니다.

UI에 '저장'버튼이 있다고 가정합니다.

보기 모델에서 버튼을 SaveCommand에 바인딩 할 수 있습니다.

SaveCommand의 구현에서 모든 데이터가 유효한지 확인하고 Error 문자열 속성을 설정할 수 있습니다.

레이블의 텍스트를 Error 속성에 바인딩 할 수 있습니다. 또한 레이블의 가시성을 조건에 바인딩 할 수도 있습니다 (Error! = null).

public class SettingsViewModel : MvxViewModel 
{ 
    string firstName; 
    public string FirstName 
    { 
      get { return this.firstName; } 
      set 
      { 
       if(this.firstName != value) 
       { 
        this.firstName = value; 
        this.RaisePropertyChanged(()=> this.FirstName); 
        this.Error = null; // reset error 
       } 
      } 
    } 

    public string Error { get; private set; } 

    public ICommand SaveCommand { get { return new MvxCommand(this.Save); } } 

    void Save() 
    { 
     // reset error 
     this.Error = null; 

     if(string.IsNullOrEmpty(this.FirstName)) 
     { 
      this.Error = "First name is empty"; 
     } 

     if(string.IsNullOrEmtpy(this.Error)) 
     { 
       // no error, save settings... 
     } 
     else 
     { 
      this.RaisePropertyChanged(()=> this.Error); 
     } 
    } 
} 
+0

감사합니다. Andrei,하지만 내 자신을 굴리기보다는 프레임 워크를 찾고있었습니다. 나는 원래의 질문에서 분명해야했다. MvvmCross에 내장 된 것이 있습니까? 유효성 검사 플러그인을 살펴 보았지만 사용 방법에 대한 예는 없었습니다. – rideintothesun

+0

예, 분명히해야합니다 :) http://bit.ly/1oItD2Q –

+0

나는 그것을 (나는 웃음을 짓 겼어!), 그냥 거기에 내가 이해하는 방법을 사용하는 방법의 예가 없습니다. – rideintothesun

관련 문제