Afficher en anglais

Partage via


ExecutedRoutedEventHandler Délégué

Définition

Représente la méthode qui gère les événements routés Executed et PreviewExecuted, ainsi que les événements attachés associés.

C#
public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);

Paramètres

sender
Object

Objet où le gestionnaire d’événements est attaché.

e
ExecutedRoutedEventArgs

Données d'événement.

Exemples

Cet exemple crée un ExecutedRoutedEventHandler qui définit une propriété visuelle sur la cible lors de l’exécution de la commande. L’exemple inclut également pour CanExecuteRoutedEventHandler la même commande.

C#
// ExecutedRoutedEventHandler for the custom color command.
private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
    Panel target = e.Source as Panel;
    if (target != null)
    {
        if (target.Background == Brushes.AliceBlue)
        {
            target.Background = Brushes.LemonChiffon;
        }
        else
        {
            target.Background = Brushes.AliceBlue;
        }
    }
}

// CanExecuteRoutedEventHandler for the custom color command.
private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    if (e.Source is Panel)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}

Remarques

Ce délégué contient la logique d’implémentation d’un RoutedCommand. La séparation de la logique d’implémentation de la commande permet d’appeler la commande à partir de différentes sources et types, et permet la centralisation de la logique de commande.

Ce délégué est également utilisé pour CommandManager.Executed et CommandManager.PreviewExecuted, qui sont des événements attachés sur la CommandManager classe qui implémente une grande partie de l’infrastructure de commande. Mais la plupart des gestionnaires pratiques gèrent les Executed événements d’un CommandBindingparticulier plutôt que de travailler au CommandManager niveau.

Dans ExecutedRoutedEventArgs, les propriétés suivantes sont généralement intéressantes lorsque vous écrivez un gestionnaire d’événements pour un événement routé qui résulte d’une commande exécutée :

  • Source indique la cible dans laquelle la commande a été exécutée. Une fois la commande exécutée, vous pouvez également considérer le Source plus généralement en termes d’événement routé, comme l’objet qui a déclenché un événement routé.

  • Command signale la commande qui s’est exécutée. Cette propriété est utile si vous utilisez des liaisons de commandes et si vous écrivez des gestionnaires qui gèrent potentiellement plusieurs commandes.

  • Parameter signale tous les paramètres spécifiques à la commande qui ont été passés par la commande en cours d’exécution. Toutes les commandes n’utilisent pas ou ne s’attendent pas à des paramètres spécifiques aux commandes.

  • Handled indique si l’événement routé résultant de la commande exécutée a déjà été géré par un autre élément le long de l’itinéraire. Pour les gestionnaires d’événements routés, il est recommandé d’avoir des gestionnaires qui effectuent un travail significatif lors de la gestion de l’événement à définir Handled sur true. Cela empêche les gestionnaires classiques de l’événement de gérer à nouveau l’événement plus loin le long de l’itinéraire. Pour plus d’informations sur la gestion des événements routés, consultez Marquage des événements routés en tant que handled et Gestion des classes.

Ce délégué représente également les gestionnaires pour CommandManager.Executed et CommandManager.PreviewExecutedEvent, qui sont des événements attachés sur la CommandManager classe qui implémente une grande partie de l’infrastructure de commande. Mais la plupart des gestionnaires pratiques gèrent les Executed événements d’un CommandBindingparticulier plutôt que de travailler au CommandManager niveau.

Pour plus d’informations sur l’exécution des commandes, consultez Vue d’ensemble des commandes.

Méthodes d’extension

GetMethodInfo(Delegate)

Obtient un objet qui représente la méthode représentée par le délégué spécifié.

S’applique à

Produit Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Voir aussi