În dezvoltarea Wpf folosită frecvent, implementăm interfața INotifyPropertyChanged în ViewModel pentru a realiza scopul de a notifica modificările interfeței prin declanșarea evenimentului PropertyChanged.
În cadrul MVVMLight, ViewModel pe care îl definim aici este moștenit din ViewModelBase, care este încapsulat în cadrul MvvmLight, și a implementat interfața INotifyPropertyChanged.
Prin urmare, când definim proprietatea ViewModel, trebuie doar să apelăm la RaisePropertyChanged(PropertyName) pentru a notifica schimbarea proprietății.
Evenimentele sunt cea mai importantă modalitate prin care interfața interfeței interacționează cu codul de fundal în aplicațiile WPF/SL, iar spre deosebire de metodele tradiționale, evenimentele sunt gestionate în principal prin legarea comenzilor în mvvm, așa că, pentru a înțelege cum sunt gestionate evenimentele în mvvm, trebuie mai întâi să fii familiarizat cu modul în care funcționează comenzile.
1. Comanda RelayCommand
Comenzile WPF/SL sunt create prin implementarea interfeței ICommand. ICommand expune două metode (Execute și CanExecute) și un eveniment (CanExecuteChanged). Execute execută acțiunea asociată comenzii. CanExecute determină dacă o comandă poate fi executată pe ținta curentă a comenzii. Clasa care implementează interfața ICommand în MvvmLight este RelayCommand, care inițializează metodele Execute și CanExecute prin constructor, astfel încât constructorul transmite parametrii tipului delegat, iar metodele delegate Execute și CanExecute execută, iar codul relevant al RelayCommand este următorul:
2. Legarea atributelor Comand
Exemplu simplu: un TextBox și un Buton, TextBox este disponibil doar când conținutul nu este gol, iar butonul disponibil este apăsat pentru a afișa conținutul TextBox.
ViewMode:
|