|
|
Опубликовано 18.12.2017 21:16:49
|
|
|

В распространённой разработке Wpf мы реализуем интерфейс INotifyPropertyChanged в ViewModel, чтобы достичь цели уведомления об изменениях интерфейса через запуск события PropertyChanged.
В фреймворке MVVMLight определяемый здесь ViewModel унаследован от ViewModelBase, который инкапсулирован в фреймворке MvvmLight, и реализовал интерфейс INotifyPropertyChanged.
Поэтому при определении свойства ViewModel нам нужно только вызвать RaisePropertyChanged(PropertyName), чтобы уведомить об изменении свойства.
События — самый важный способ взаимодействия интерфейса с фоновым кодом в приложениях WPF/SL, и в отличие от традиционных методов, события обрабатываются в основном через привязку к командам в mvvm, поэтому, чтобы понять, как обрабатываются события в mvvm, сначала нужно ознакомиться с тем, как работают команды.
1. Команда RelayCommand
Команды WPF/SL создаются с реализацией интерфейса ICommand. ICommand открывает два метода (Execute и CanExecute) и событие (CanExecuteChanged). Execute выполняет действие, связанное с командой. CanExecute определяет, можно ли выполнить команду на текущей целевой команде. Класс, реализующий интерфейс ICommand в MvvmLight, — это RelayCommand, который инициализирует методы Execute и CanExecute через конструктор, так что конструктор передаёт параметры типа делегата, а Execute и CanExecute выполняют делегированные методы, при этом соответствующий код RelayCommand выглядит следующим образом:
2. Связывание атрибутов Comand
Простой пример: TextBox и кнопка, TextBox доступен только тогда, когда содержимое не пусто, и доступная кнопка нажимается, чтобы показать содержимое TextBox.
ViewMode:
|
Предыдущий:android-TableLayout, а также использование TableRowСледующий:Главное окно открывается, когда окно входа в WPF закрыто
|