8 votes

Quelle est la différence entre une commande et un événement dans WPF ?

J'étais en train de chercher sur Google la différence entre WPF Command et Event dans WPF. J'ai atterri sur la page suivante de stackoverflow où la discussion est en cours.

Quelle est la différence entre une commande WPF et un événement ?

Je suis seulement capable de comprendre ce qui suit à partir de là

  1. Les commandes peuvent être écrites dans la couche métier alors que les événements ne le sont que dans la couche présentation.
  2. Une même commande peut être associée à plusieurs contrôles, mais un événement ne peut être associé qu'à un seul contrôle.

Est-ce que j'ai raison ? Y a-t-il d'autres différences entre eux ?

6voto

Denys Denysenko Points 7108

Vous avez raison, mais seulement en partie.

  1. La principale préoccupation est que les événements ne correspondent pas bien dans MVVM paradigme. Pour dire simplement que les événements sont difficilement enfichables, vous ne pouvez pas vous lier à un gestionnaire d'événements. Néanmoins, il n'y a aucune limite à l'utilisation des commandes dans la couche de présentation, mais il n'y a aucun avantage à le faire. De même, vous pourriez attraper votre contrôle dans la BLL et y attacher un gestionnaire d'événements, mais ce cas est encore pire.
  2. Non. Les gestionnaires d'événements peuvent également être associés à différents contrôles, à condition que le type d'argument d'événement corresponde.

Les commandes vous donnent également des avantages gratuits. Par exemple, l'utilisation de l'élément de commande sera désactivée si CanExecute() renvoie faux. Un autre avantage est que l'utilisation de commandes vous oblige à suivre les instructions suivantes Séparation des préoccupations principe.

5voto

MrDosu Points 2572

Un événement est un déclencheur qui se produit lorsque quelque chose se produit dans l'interface utilisateur. Une commande est la façon dont cet événement est traité par votre modèle de domaine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X