Nello sviluppo WPF comunemente utilizzato, implementiamo l'interfaccia INotifyPropertyChanged nel ViewModel per raggiungere lo scopo di notificare le modifiche dell'interfaccia attivando l'evento PropertyChanged.
Nel framework MVVMLight, il ViewModel che definiamo qui è ereditato da ViewModelBase, che è incapsulato nel framework MvvmLight, e ha implementato l'interfaccia INotifyPropertyChanged.
Pertanto, quando definiamo la proprietà ViewModel, basta chiamare RaisePropertyChanged(PropertyName) per notificare il cambiamento della proprietà.
Gli eventi sono il modo più importante per l'interfaccia di interagire con il codice in background nelle applicazioni WPF/SL e, a differenza dei metodi tradizionali, gli eventi vengono gestiti principalmente tramite binding ai comandi in mvvm, quindi per capire come vengono gestiti gli eventi in mvvm, devi prima conoscere bene come funzionano i comandi.
1. Comando RelayCommand
I comandi WPF/SL vengono creati implementando l'interfaccia ICommand. ICommand espone due metodi (Execute e CanExecute) e un evento (CanExecuteChanged). Execute esegue l'azione associata al comando. CanExecute determina se un comando può essere eseguito sul bersaglio di comando corrente. La classe che implementa l'interfaccia ICommand in MvvmLight è RelayCommand, che inizializza i metodi Execute e CanExecute tramite il costruttore, così il costruttore inserisce i parametri del tipo di delegato, e i metodi delegati Execute e CanExecute i metodi delegati, e il codice rilevante di RelayCommand è il seguente:
2. Binding degli attributi Comand
Esempio semplice: una Casella di Testo e un Pulsante, la Casella di Testo è disponibile solo quando il contenuto non è vuoto, e il Pulsante disponibile viene cliccato per mostrare il contenuto della Casella di Testo.
ViewMode:
|