V běžně používaném vývoji Wpf implementujeme rozhraní INotifyPropertyChanged v ViewModelu, abychom dosáhli upozornění na změny uživatelského rozhraní spuštěním události PropertyChanged.
V rámci MVVMLight je ViewModel, který zde definujeme, převzat z ViewModelBase, který je zapouzdřen v rámci MvvmLight, a implementoval rozhraní INotifyPropertyChanged.
Proto při definování vlastnosti ViewModel stačí zavolat RaisePropertyChanged(PropertyName), abychom změnu vlastnosti oznámili.
Události jsou nejdůležitějším způsobem, jak UI interaguje s pozadím kódu v aplikacích WPF/SL, a na rozdíl od tradičních metod jsou události řešeny hlavně vazbou na příkazy v mvvm, takže abyste pochopili, jak jsou události v mvvm zpracovávány, musíte nejprve znát fungování příkazů.
1. Příkaz RelayCommand
Příkazy WPF/SL jsou vytvářeny implementací rozhraní ICommand. ICommand zpřístupňuje dvě metody (Execute a CanExecute) a událost (CanExecuteChanged). Execute vykoná akci spojenou s příkazem. CanExecute určuje, zda lze příkaz provést na aktuálním cíli příkazu. Třída, která implementuje rozhraní ICommand v MvvmLight, je RelayCommand, která inicializuje metody Execute a CanExecute prostřednictvím konstruktoru, takže konstruktor předá parametry typu delegáta, Execute a CanExecute vykonávají delegované metody, a příslušný kód RelayCommand je následující:
2. Vazba atributu Comand
Jednoduchý příklad: TextBox a tlačítko, TextBox je dostupný pouze tehdy, když obsah není prázdný, a na dostupné tlačítko se klikne, aby se obsah TextBoxu zobrazil.
ViewMode:
|