UIElement.RemoveHandler(RoutedEvent, Delegate) Metodo

Definizione

Rimuove il gestore dell'evento indirizzato specificato da questo elemento.Removes the specified routed event handler from this element.

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

Parametri

routedEvent
RoutedEvent

Identificatore dell'evento indirizzato al quale è associato il gestore.The identifier of the routed event for which the handler is attached.

handler
Delegate

Implementazione del gestore specifico da rimuovere dalla raccolta di gestori eventi per questo elemento.The specific handler implementation to remove from the event handler collection on this element.

Implementazioni

Esempi

Nell'esempio seguente viene usato RemoveHandler come parte della definizione di un wrapper di eventi.The following example uses RemoveHandler as part of an event wrapper definition.

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

Commenti

Lo scenario più comune per l'uso di questa API è quando si implementa l'Common Language Runtime (CLR)common language runtime (CLR) evento "wrapper" associato a un evento indirizzato personalizzato, in particolare quando si implementa la logica di "rimozione" per i gestori a livello di CLRCLR.The most common scenario for using this API is when you implement the Common Language Runtime (CLR)common language runtime (CLR) "wrapper" event that is associated with a custom routed event, specifically when you implement the "remove" logic for handlers at the CLRCLR level. Questo scenario è illustrato nell'esempio che segue questa sezione Osservazioni.The example that follows this remarks section illustrates this scenario.

La chiamata a questo metodo non produce alcun effetto se non sono presenti gestori registrati con criteri corrispondenti ai parametri di input per la chiamata al metodo.Calling this method has no effect if there were no handlers registered with criteria that matches the input parameters for the method call.

Se è associato più di un gestore che corrisponde ai criteri, viene rimosso solo il primo gestore nell'archivio del gestore eventi.If more than one handler is attached that matched the criteria, only the first handler in the event handler store is removed. Questo comportamento è coerente con CLRCLR comportamento dell'operatore -=.This behavior is consistent with CLRCLR behavior of the -= operator.

Non è possibile nullroutedEventhandler.Neither routedEvent nor handler may be null. Il tentativo di fornire uno o più valori come null genererà un'eccezione.Attempting to provide either value as null will raise an exception.

Questo metodo ignora le informazioni sul parametro handledEventsToo, che viene fornito se il gestore è stato aggiunto per la prima volta con la firma di AddHandler(RoutedEvent, Delegate, Boolean) che consente la gestione di eventi già gestiti.This method ignores the handledEventsToo parameter information, which is provided if the handler was first added with the AddHandler(RoutedEvent, Delegate, Boolean) signature that enables handling of already-handled events. Viene rimosso uno dei due tipi di gestore.Either type of handler is removed.

Si applica a

Vedi anche