Comment utiliser RelayCommand avec le framework MVVM Light
J'ai juste commencé à apprendre le framework MVVM Light et je ne trouve pas de simples exemples sur la façon d'utiliser un RelayCommand. Pour les fins de l'apprentissage, j'aimerais juste avoir un bouton de mon point de vue, qui lorsqu'il est cliqué afficher un hello world mondiale de la boîte de message, et qui est activé sur tous les même minute (en gros si DateTime.Maintenant.Minute % 2 == 0).
Comment le bouton XAML regarder, et comment le RelayCommand HelloWorld être défini dans le ViewModel?
Merci pour votre aide!!
Vous devez vous connecter pour publier un commentaire.
RelayCommand
s'objectif est de mettre en œuvre laICommand
interface que les contrôles de Bouton de besoins et de se contenter de passer les appels sur une autre fonction qui généralement se trouve juste à côté d'eux dans le ViewModel.Ainsi, par exemple, vous avez un ViewModel classe comme:
Dans votre contrôle vous avez la
DataContext
définis soit dans le code sous-jacent ou, dans le XAML, directement par le biais d'unDataContext={StaticResource ...}
Votre bouton doit alors se lier à la commande dans le ViewModel comme
Lorsque le Bouton est cliqué, il utilise le
DisplayMessageCommand
et les appelsExecute()
sur cet objet quiRelayCommand
juste vers laDisplayMessage
méthode.La
DispatchTimer
s'éteint une fois que une minute et les appelsRaiseCanExecuteChanged()
. Cela permet au bouton qui est lié à la commande de re-vérifier si la commande est toujours valide ou pas. Sinon, vous pouvez cliquez sur le bouton pour que la commande n'est pas disponible actuellement.public ICommand DisplayMessageCommand { get; private set; }
Ou avec lambda