2015-11-05 50 views
-1

我有一個由多個文本框和一個搜索按鈕組成的WPF頁面。當按下搜索按鈕時,程序需要枚舉所有控件以確定是否至少填充了一個文本框。如果全部爲空錯誤,則會顯示錯誤。正在使用mvvm-light模式。確定文本框是否包含值MVVM

一個人如何枚舉MVVM

回答

3

有一個簡單的方法就可以達到你的目標下的所有文本框。

您可以創建ViewModel並在此ViewModel中創建屬性,以便您可以將這些屬性綁定到XAML上的TextBox,這樣您ViewModel上的屬性將保留文本框的值,這裏是一個示例。

XAML

<TextBox Text="{Binding Name, Mode=TwoWay}"/> 
<TextBox Text="{Binding Age, Mode=TwoWay}"/> 

「模式=雙向」 是指每當綁定屬性變化,文本框將被自動更新。

XAML代碼行爲。

public MainWindow(){ 
     InitializeComponent(); 
     this.DataContext = new MainWindowViewModel(); 
    } 

你需要爲了能夠綁定屬性中設置的DataContext。

視圖模型

public class MainWindowViewModel{ 
    private string _name; 
    public string Name{ 
     get{ 
      return _name; 
     } 

     set{ 
      _name = value; 
     } 
    } 

    private int _age; 
    public int Age{ 
     get{ 
      return _age; 
     } 

     set{ 
      _age = value; 
     } 
    } 
} 

就是它,當你需要檢查你的文本框爲空,每次,你可以這樣做檢查,如果您的視圖模型屬性爲空。

0

按照此邏輯枚舉控件並通知用戶其狀態。

  1. 將視圖上的每個控件綁定到View Model上的各個屬性。
  2. 在ViewModel上創建一個方法,可能調用AreAllBlank(?)來枚舉每個屬性,檢查它們是否爲空。如果全部爲空,則返回true,否則返回false
  3. 在視圖中,對於按鈕操作後面的代碼,請調用在步驟2中創建的方法。如果結果顯示它們控制的數據沒有數據,則調用MessageBox.Show()並顯示相應的消息。
+0

感謝您的信息,在這裏我有一個懷疑,我們可以驗證所有文本框是空的而不是檢查string.IsNullorEmpty()到每個文本框控件 –

相關問題