Pri pogosto uporabljenem razvoju Wpf implementiramo vmesnik INotifyPropertyChanged v ViewModelu, da dosežemo namen obveščanja o spremembah uporabniškega vmesnika s sprožitvijo dogodka PropertyChanged.
V okviru MVVMLight je ViewModel, ki ga tukaj definiramo, podedovan iz ViewModelBase, ki je enkapsuliran v okviru MvvmLight, in je implementiral vmesnik INotifyPropertyChanged.
Zato moramo pri definiranju lastnosti ViewModel poklicati le RaisePropertyChanged(PropertyName), da obvestimo o spremembi lastnosti.
Dogodki so najpomembnejši način interakcije uporabniškega vmesnika z ozadno kodo v aplikacijah WPF/SL, in za razliko od tradicionalnih metod se dogodki večinoma obravnavajo z vezavo na ukaze v mvvm, zato morate za razumevanje, kako se dogodki obravnavajo v mvvm, najprej poznati, kako ukazi delujejo.
1. Poveljstvo RelayCommand
Ukazi WPF/SL se ustvarjajo z implementacijo vmesnika ICommand. ICommand omogoča dve metodi (Execute in CanExecute) ter dogodek (CanExecuteChanged). Execute izvede dejanje, povezano z ukazom. CanExecute določa, ali je ukaz mogoče izvesti na trenutnem cilju ukaza. Razred, ki implementira ICommand vmesnik v MvvmLight, je RelayCommand, ki inicializira metode Execute in CanExecute preko konstruktorja, tako da konstruktor posreduje parametre tipa delegate, Execute in CanExecute pa delegirane metode, ustrezna koda RelayCommand pa je naslednja:
2. Vezava atributov Comand
Preprost primer: TextBox in gumb, TextBox je na voljo le, ko vsebina ni prazna, in kliknemo na gumb TextBox za prikaz vsebine TextBoxa.
ViewMode:
|