Transmission des arguments d'événement et de l'expéditeur à RelayCommand
Comment obtenez-vous l'événement de l'expéditeur lors de l'utilisation de RelayCommand?
source d'informationauteur incognito
Vous devez vous connecter pour publier un commentaire.
C'est l'un de ceux de la douleur-dans-le-%¤# réponses où je n'ai pas vraiment répondre à votre question, mais plutôt la leçon sur ce que vous devez faire différemment. Donc, désolé. Va ici:
Si vous vous trouvez dans une situation où vous avez besoin pour obtenir à l'expéditeur objet dans votre viewmodel, alors vous devriez probablement faire quelque chose de différent. En faisant référence, par exemple, un Bouton ou une zone de liste dans votre viewmodel vous avez fait que viewmodel conscient de l'INTERFACE utilisateur, les concepts qu'il ne doit pas savoir quelque chose sur. Ma suggestion est de la place du crochet jusqu'à l'événement dans le code-behind de la page, découvrez ce que vous devez savoir à propos de l'expéditeur ou qu'est-ce-pas, et ensuite exécuter le viewmodel de la commande par programme. C'est aussi la rupture de la MVVM "règles", mais à mon humble avis, il est beaucoup plus légère hack de référencement de l'émetteur dans le viewmodel.
J'ai eu un problème similaire, mais seulement nécessaire pour obtenir la EventArgs. Avec plaisir, c'était ridiculement simple, une fois que j'ai trouvé la réponse dans un autre thread ici à Débordement de Pile.
Une fois que vous savez à propos de la magie "PassEventArgsToCommand", vous êtes d'or. Il suffit d'utiliser un
RelayCommand<type>
au lieu d'une plaine RelayCommand.J'espère que cette aide.
Cela peut être fait par la liaison de l'expéditeur pour le Paramètre de la Commande.