I almindeligt anvendt Wpf-udvikling implementerer vi INotifyPropertyChanged-grænsefladen i ViewModel for at opnå formålet med at underrette UI-ændringer ved at udløse PropertyChanged-hændelsen.
I MVVMLight-rammeværket er ViewModel, vi definerer her, arvet fra ViewModelBase, som er indkapslet i MvvmLight-rammeværket, og det har implementeret INotifyPropertyChanged-grænsefladen.
Derfor behøver vi, når vi definerer ViewModel-egenskaben, blot at kalde RaisePropertyChanged(PropertyName) for at underrette ændringen i egenskaben.
Events er den vigtigste måde for UI'en at interagere med baggrundskode i WPF/SL-applikationer, og i modsætning til traditionelle metoder håndteres events hovedsageligt ved at binde til kommandoer i mvvm, så for at forstå, hvordan events håndteres i mvvm, skal du først være bekendt med, hvordan kommandoer fungerer.
1. RelayCommand-kommando
WPF/SL-kommandoer oprettes ved at implementere ICommand-grænsefladen. ICommand eksponerer to metoder (Execute og CanExecute) og en begivenhed (CanExecuteChanged). Udfør udfører handlingen, der er forbundet med kommandoen. CanExecute afgør, om en kommando kan udføres på det aktuelle kommandomål. Klassen, der implementerer ICommand-grænsefladen i MvvmLight, er RelayCommand, som initialiserer Execute- og CanExekver-metoderne gennem konstruktøren, så konstruktøren sender parametrene for delegattypen ind, og Execute og CanExecute udfører de delegerede metoder, og den relevante kode til RelayCommand er som følger:
2. Comand-attributbinding
Simpelt eksempel: en TextBox og en Button, TextBox er kun tilgængelig, når indholdet ikke er tomt, og den tilgængelige knap klikkes for at vise TextBox-indholdet.
ViewMode:
|