UIElement.RemoveHandler(RoutedEvent, Delegate) Método

Definición

Quita el controlador de eventos enrutados especificado de este elemento.

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)

Parámetros

routedEvent
RoutedEvent

Identificador del evento enrutado al que se adjunta el controlador.

handler
Delegate

Implementación de controlador específica que se va a quitar de la colección de controladores de eventos de este elemento.

Implementaciones

Ejemplos

En el ejemplo siguiente se usa RemoveHandler como parte de una definición de contenedor de eventos.

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

Comentarios

El escenario más común para usar esta API es cuando se implementa el evento "contenedor" de Common Language Runtime (CLR) asociado a un evento enrutado personalizado, específicamente cuando se implementa la lógica de "eliminación" para controladores en el nivel clR. En el ejemplo siguiente a esta sección de comentarios se muestra este escenario.

Llamar a este método no tiene ningún efecto si no había controladores registrados con criterios que coincidan con los parámetros de entrada de la llamada al método.

Si se adjunta más de un controlador que coincide con los criterios, solo se quita el primer controlador del almacén de controladores de eventos. Este comportamiento es coherente con el comportamiento CLR del -= operador.

Ni routedEvent ni handler pueden ser null. Si se intenta proporcionar cualquiera de los valores, null se producirá una excepción.

Este método omite la handledEventsToo información de parámetros, que se proporciona si el controlador se agregó por primera vez con la firma que permite el AddHandler(RoutedEvent, Delegate, Boolean) control de eventos ya controlados. Se quita cualquier tipo de controlador.

Se aplica a

Consulte también