UIElement.RemoveHandler(RoutedEvent, Delegate) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.