2015-11-05 2 views
-1

У меня есть страница WPF, которая состоит из нескольких текстовых полей и кнопки поиска. При нажатии кнопки поиска программе необходимо перечислить все элементы управления, чтобы определить, заполнено ли хотя бы одно из текстовых полей. Если все пустые ошибки, то будет показана ошибка. Используется шаблон mvvm-light.Определить, содержат ли текстовые поля значения MVVM

Как один перечислить все текстовые поля под MVVM

ответ

3

Там простой способ, что вы можете достичь своей цели.

Вы можете создать ViewModel и создать свойства в этой модели ViewModel, чтобы вы могли привязать эти свойства к своему TextBox на XAML, так что ваши свойства в ViewModel будут поддерживать значение текстового поля, вот пример.

XAML

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

"Mode = TwoWay" означает, что всякий раз, когда изменение свойства привязки, то TextBox будет обновляться автоматически.

Код XAML behaind.

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

Вы должны установить DataContext для того, чтобы иметь возможность связать свойства.

ViewModel

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; 
     } 
    } 
} 

То есть это, каждый раз, когда вам нужно проверить, если ваш TextBoxes пустуют, вы можете сделать это проверить, если ваши свойства на View Model пустуют.

0

Следуйте этой логике, чтобы перечислить элементы управления и сообщить пользователю о своем статусе.

  1. Привяжите каждый элемент управления к виду к отдельным свойствам модели просмотра.
  2. Создайте метод в ViewModel, возможно, вызванный AreAllBlank (?), Чтобы перечислять каждое из свойств, проверяющих, являются ли они пустыми или нет. Если все они пусты, верните true, в противном случае верните false.
  3. В представлении для кода нажатия кнопки за операцией вызовите метод, созданный на шаге 2. Если результат показывает, что они не имеют вызова данных с соответствующим сообщением.
+0

Спасибо за информацию, здесь у меня есть сомнения, насколько эффективно мы можем проверить, что все текстовые поля пусты, вместо проверки строки. IsNullorEmpty() для каждого элемента управления текстовым полем –

Смежные вопросы