2014-10-04 56 views
0

我剛開始學習使用Xamarin和MvvmCross編寫移動應用程序。由於包括N + 1天的YouTube上MvvmCross視頻在內的大力支持(對斯圖爾特洛奇的巨大感謝),我發現獲取基礎知識非常容易。如何使用mvvmcross進行驗證

但是我掙扎着價值數據。我希望Stackoverflow上的某個人可以指示我使用MvvmCross進行驗證的一些有用的博客或教程的方向。我希望能夠驗證輸入的數據,然後更新指示問題的視圖。

我需要一些基本的原則,因爲我不知道我不知道什麼(如果這是有道理的)。我需要遵循一些最佳做法。

回答

1

數據驗證可以以不同的方式顯示在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

謝謝安德烈,但我一直在尋找一個框架來做到這一點,而不是滾動我自己的。我原來的問題應該更清楚了。 MvvmCross內置了什麼?我查看了驗證插件,但沒有關於如何使用它的示例。 – rideintothesun 2014-10-05 00:27:57

+0

是的,你應該已經更清晰:) http://bit.ly/1oItD2Q – 2014-10-05 07:37:50

+0

我做了Google它(我笑了!),它只是沒有如何使用它的例子,我明白了。 – rideintothesun 2014-10-05 09:50:14