В често използваната 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. Свързване на атрибути чрез Команд
Прост пример: TextBox и бутон, TextBox е достъпен само когато съдържанието не е празно, а наличният бутон се натиска, за да се покаже съдържанието на TextBox.
ViewMode:
|