Στην ανάπτυξη Wpf που χρησιμοποιείται συνήθως, εφαρμόζουμε τη διεπαφή INotifyPropertyChanged στο ViewModel για να επιτύχουμε τον σκοπό της ειδοποίησης αλλαγών διεπαφής χρήστη ενεργοποιώντας το συμβάν PropertyChanged.
Στο πλαίσιο MVVMLight, το ViewModel που ορίζουμε εδώ κληρονομείται από το ViewModelBase, το οποίο είναι ενθυλακωμένο στο πλαίσιο MvvmLight και έχει υλοποιήσει τη διεπαφή INotifyPropertyChanged.
Επομένως, κατά τον ορισμό της ιδιότητας ViewModel, χρειάζεται μόνο να καλέσουμε το RaisePropertyChanged(PropertyName) για να ειδοποιήσουμε την αλλαγή ιδιότητας.
Τα συμβάντα είναι ο πιο σημαντικός τρόπος αλληλεπίδρασης της διεπαφής χρήστη με τον κώδικα παρασκηνίου σε εφαρμογές WPF/SL και σε αντίθεση με τις παραδοσιακές μεθόδους, ο χειρισμός των συμβάντων γίνεται κυρίως με σύνδεση σε εντολές στο mvvm, επομένως για να κατανοήσετε πώς αντιμετωπίζονται τα συμβάντα στο mvvm, πρέπει πρώτα να είστε εξοικειωμένοι με τον τρόπο λειτουργίας των εντολών.
1. Εντολή RelayCommand
Οι εντολές WPF/SL δημιουργούνται με την υλοποίηση της διεπαφής ICommand. Το ICommand εκθέτει δύο μεθόδους (Execute και CanExecute) και ένα συμβάν (CanExecuteChanged). Εκτέλεση εκτελεί την ενέργεια που σχετίζεται με την εντολή. Το CanExecute καθορίζει εάν μια εντολή μπορεί να εκτελεστεί στον τρέχοντα προορισμό εντολής. Η κλάση που υλοποιεί τη διεπαφή ICommand στο MvvmLight είναι η RelayCommand, η οποία αρχικοποιεί τις μεθόδους Execute και CanExecute μέσω του κατασκευαστή, έτσι ώστε ο κατασκευαστής να περνά τις παραμέτρους του τύπου αντιπροσώπου και τις μεθόδους Execute και CanExecute και ο σχετικός κώδικας του RelayCommand είναι ο εξής:
2. Δέσμευση χαρακτηριστικών Comand
Απλό παράδειγμα: ένα πλαίσιο κειμένου και ένα κουμπί, το πλαίσιο κειμένου είναι διαθέσιμο μόνο όταν το περιεχόμενο δεν είναι κενό και γίνεται κλικ στο διαθέσιμο κουμπί για να εμφανιστεί το περιεχόμενο του πλαισίου κειμένου.
ViewMode:
|