UIElement.RemoveHandler(RoutedEvent, Delegate) Méthode

Définition

Supprime le gestionnaire d’événements routés spécifié de cet élément.

public:
 virtual void RemoveHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void RemoveHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub RemoveHandler (routedEvent As RoutedEvent, handler As Delegate)

Paramètres

routedEvent
RoutedEvent

Identificateur de l'événement routé pour lequel le gestionnaire est attaché.

handler
Delegate

Implémentation de gestionnaire spécifique à supprimer de la collection de gestionnaires d’événements de cet élément.

Implémente

Exemples

L’exemple suivant s’utilise RemoveHandler dans le cadre d’une définition de wrapper d’événements.

public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
    "Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));

// Provide CLR accessors for the event
public event RoutedEventHandler Tap
{
        add { AddHandler(TapEvent, value); } 
        remove { RemoveHandler(TapEvent, value); }
}
Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))

' Provide CLR accessors for the event
Public Custom Event Tap As RoutedEventHandler
    AddHandler(ByVal value As RoutedEventHandler)
        Me.AddHandler(TapEvent, value)
    End AddHandler

    RemoveHandler(ByVal value As RoutedEventHandler)
        Me.RemoveHandler(TapEvent, value)
    End RemoveHandler

    RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Me.RaiseEvent(e)
    End RaiseEvent
End Event

Remarques

Le scénario le plus courant pour l’utilisation de cette API est lorsque vous implémentez l’événement CLR (Common Language Runtime) « wrapper » associé à un événement routé personnalisé, en particulier lorsque vous implémentez la logique « remove » pour les gestionnaires au niveau du CLR. L’exemple suivant cette section remarques illustre ce scénario.

L’appel de cette méthode n’a aucun effet s’il n’y avait aucun gestionnaire inscrit avec des critères qui correspondent aux paramètres d’entrée de l’appel de méthode.

Si plusieurs gestionnaires sont attachés qui correspondent aux critères, seul le premier gestionnaire du magasin de gestionnaires d’événements est supprimé. Ce comportement est cohérent avec le comportement CLR de l’opérateur -= .

Ni routedEvent ne handler peut être null. Toute tentative de fournir l’une ou l’autre de ces valeurs null génère une exception.

Cette méthode ignore les handledEventsToo informations de paramètre fournies si le gestionnaire a été ajouté pour la première fois avec la AddHandler(RoutedEvent, Delegate, Boolean) signature qui permet la gestion des événements déjà gérés. L’un ou l’autre type de gestionnaire est supprimé.

S’applique à

Voir aussi