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?
Réponses
Trop de publicités?Les commandes de fournir deux principaux avantages plus des gestionnaires d'événement:
- 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.
- 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
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.
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.