passage d'Arguments d'Événement d'origine du gestionnaire d'Événement Routé dans wpf

Le code suivant montre un événement normal et un événement routé. Ici, j'ai utilisé le même nom de l'événement pour expliquer, mais en réalité, je suis juste en utilisant l'événement routé.

//Normal Event
public event SelectedHandler Selected;
public delegate void SelectedHandler(Object Sender, RoutedEventArgs e);

//Routed Event
public static readonly RoutedEvent SelectedEvent =
EventManager.RegisterRoutedEvent(
"Selected", RoutingStrategy.Bubble,
typeof(RoutedEventHandler),
typeof(MyUserControl));

//add remove handlers
public event RoutedEventHandler Selected
{
    add { AddHandler(SelectedEvent, value); }
    remove { RemoveHandler(SelectedEvent, value); }
}

Que je soulève ces événements à partir d'un couple de gestionnaires d'événements comme suit

private void lstvMyView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    //Normal Event Raise
    if (Selected != null)
        Selected(this, e);

    //Routed Event Raise
    RoutedEventArgs args = new RoutedEventArgs(SelectedEvent);
    RaiseEvent(args);
}

private void lstvMyView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    //Normal Event Raise
    if (Selected != null)
        Selected(this, e);

    //Routed Event Raise
    RoutedEventArgs args = new RoutedEventArgs(SelectedEvent);
    RaiseEvent(args);
}

Quand je suis à la manipulation de l'Événement normal, je suis en mesure d'envoyer des arguments à la fois les gestionnaires de l'événement, mais dans l'Événement Routé le args sera une nouvelle instance. Je veux passer les arguments à la fois les gestionnaires de l'Événement Routé. Est-il possible de réaliser cela? Si oui, alors comment?

OriginalL'auteur samar | 2010-12-21