49 votes

WPF Commands vs Events Avantages / Inconvénients

Quelqu'un peut-il me dire quels sont les avantages d'utiliser Commands vs Events dans WPF. Des commandes ou des événements sont-ils liés à des pertes de mémoire? Quelle est l'approche la plus rapide. Quels sont leurs inconvénients?

39voto

Andrii Points 947

Les commandes de fournir deux principaux avantages plus des gestionnaires d'événement:

  1. les commandes ne sont pas liées à la de l'appelant, de sorte que même commande n'est pas dépendant et peut être appelée à partir de élément de menu, le bouton de barre d'outils, clavier, etc.
  2. les commandes de fournir un soutien pour activation/désactivation de l'INTERFACE liée des contrôles basés sur l'état de de commande (peut être exécutée ou pas)

Je préfère le à l'aide des commandes au projet réel, surtout si vous souhaitez utiliser M-V-VM.

Je n'ai pas encore entendu parler de fuites de mémoire liés avec les commandes.

Les événements sont probablement plus rapide, mais la différence ne devrait pas être signifigant - j'ai été en utilisant les commandes de mes projets pour 2 ans et n'avait pas des problèmes de performances avec eux.

Pour plus de détails sur les commandes de voir le Commandant de la vue d'ensemble

36voto

huttelihut Points 1621

Mais bien que les commandes et les événements puissent se chevaucher, ils sont deux choses différentes. Les commandes disent "fais ça!", Alors que les événements disent "ça vient de se passer!". Vous pouvez donc avoir une commande CloseWindow pour fermer une fenêtre, mais la fenêtre peut avoir un événement ClosingEvent qui indique aux objets abonnés qu'il est en train de se fermer.

5voto

Nima Rikhtegar Points 425

Les commandes sont un plus standard de façon à intégrer les événements. ils peuvent être plus utiles que des événements parce qu'avec eux, vous pouvez définir une tâche unique (commande) et de l'utiliser à partir de différents endroits. vous pouvez par exemple définir un enregistrement de la commande et de l'utilisation d'un élément de menu, un élément de menu contextuel et un bouton pour l'utiliser en même temps. de cette façon, vous pouvez centerlize les tâches. aussi les commandes de liaison de données qui est une très puissante fonctionnalité de l'application WPF. autant que je sache, les commandes de conduire à certains types de fuites de mémoire, mais vous pouvez éviter cela en utilisant de nombreuses solutions. Je dois ajouter que MVVM modèle de conception utilise également les commandes comme un moyen standard pour la conception des applications WPF. travailler avec des événements est beaucoup plus simple, mais les commandes de fournir beaucoup plus puissant de conception. mais vous devez maintenant que vous ne pouvez pas toujours utiliser les commandes au lieu des événements. il y a tout autant de lieux que vous pouvez utiliser uniquement les événements.

0voto

flq Points 11937

De plus, WPF4.0 autorise la liaison aux définitions de commande. Il est ainsi encore plus facile d’exposer les commandes de vos modèles de vue, ce qui vous aide parfaitement à séparer la logique des problèmes d’interface utilisateur.

-4voto

knockNrod Points 11

Les commandes sont des événements routés.

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