Dažniausiai naudojamoje Wpf kūrimo programoje įdiegiame INotifyPropertyChanged sąsają ViewModel, kad pasiektume tikslą pranešti apie vartotojo sąsajos pakeitimus suaktyvindami įvykį PropertyChanged.
MVVMLight sistemoje ViewModel, kurį čia apibrėžiame, yra paveldėtas iš ViewModelBase, kuris yra įtrauktas į MvvmLight sistemą, ir ji įdiegė INotifyPropertyChanged sąsają.
Todėl, apibrėžiant ypatybę ViewModel, mums tereikia iškviesti RaisePropertyChanged(PropertyName), kad praneštume apie ypatybės pakeitimą.
Įvykiai yra svarbiausias būdas vartotojo sąsajai sąveikauti su foniniu kodu WPF/SL programose, ir, skirtingai nuo tradicinių metodų, įvykiai daugiausia tvarkomi susiejant su komandomis mvvm, todėl norėdami suprasti, kaip įvykiai tvarkomi mvvm, pirmiausia turite žinoti, kaip veikia komandos.
1. Komanda "RelayCommand"
WPF/SL komandos sukuriamos įdiegus ICommand sąsają. ICommand atskleidžia du metodus (Execute ir CanExecute) ir įvykį (CanExecuteChanged). Vykdyti vykdo su komanda susietą veiksmą. CanExecute nustato, ar komandą galima vykdyti dabartiniam komandos tikslui. Klasė, įgyvendinanti "ICommand" sąsają "MvvmLight", yra "RelayCommand", kuri inicijuoja "Execute" ir "CanExecute" metodus per konstruktorių, todėl konstruktorius perduoda delegato tipo parametrus, o "Execute" ir "CanExecute" vykdo deleguotus metodus, o atitinkamas "RelayCommand" kodas yra toks:
2. Comand atributų susiejimas
Paprastas pavyzdys: teksto laukelis ir mygtukas, teksto laukelis pasiekiamas tik tada, kai turinys nėra tuščias, o galimas mygtukas spustelėjamas, kad būtų rodomas teksto lauko turinys.
ViewMode:
|