I vanlig brukt WPF-utvikling implementerer vi INotifyPropertyChanged-grensesnittet i ViewModel for å oppnå formålet med å varsle UI-endringer ved å utløse PropertyChanged-hendelsen.
I MVVMLight-rammeverket er ViewModel vi definerer her arvet fra ViewModelBase, som er innkapslet i MvvmLight-rammeverket, og det har implementert INotifyPropertyChanged-grensesnittet.
Derfor, når vi definerer ViewModel-egenskapen, trenger vi bare å kalle RaisePropertyChanged(PropertyName) for å varsle egenskapsendringen.
Hendelser er den viktigste måten for brukergrensesnittet å samhandle med bakgrunnskode i WPF/SL-applikasjoner, og i motsetning til tradisjonelle metoder håndteres hendelser hovedsakelig ved å binde til kommandoer i mvvm, så for å forstå hvordan hendelser håndteres i mvvm, må du først være kjent med hvordan kommandoer fungerer.
1. RelayCommand-kommando
WPF/SL-kommandoer opprettes ved å implementere ICommand-grensesnittet. ICommand eksponerer to metoder (Execute og CanExecute) og en hendelse (CanExecuteChanged). Execute utfører handlingen knyttet til kommandoen. CanExecute avgjør om en kommando kan utføres på det nåværende kommandomålet. Klassen som implementerer ICommand-grensesnittet i MvvmLight er RelayCommand, som initialiserer metodene Execute og CanExecute gjennom konstruktøren, slik at konstruktøren sender inn parameterne til delegattypen, og Execute og CanExecute utfører de delegerte metodene, og den relevante koden til RelayCommand er som følger:
2. Comand-attributtbinding
Enkelt eksempel: en tekstboks og en knapp, tekstboksen er kun tilgjengelig når innholdet ikke er tomt, og den tilgjengelige knappen klikkes på for å vise innholdet i tekstboksen.
ViewMode:
|