UIElement.RemoveHandler(RoutedEvent, Delegate) Metodo

Definizione

Rimuove il gestore dell'evento indirizzato specificato da questo 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)

Parametri

routedEvent
RoutedEvent

Identificatore dell'evento indirizzato al quale è associato il gestore.

handler
Delegate

Implementazione del gestore specifico da rimuovere dalla raccolta di gestori eventi per questo elemento.

Implementazioni

Esempio

Nell'esempio seguente viene RemoveHandler usato come parte di una definizione del wrapper di eventi.

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'evento clr (Common Language Runtime) "wrapper" associato a un evento indirizzato personalizzato, in particolare quando si implementa la logica "remove" per i gestori a livello CLR. L'esempio che segue questa sezione osservazioni illustra questo scenario.

La chiamata a questo metodo non ha alcun effetto se non sono presenti gestori registrati con criteri che corrispondono ai parametri di input per la chiamata al metodo.

Se sono associati più gestori che soddisfano i criteri, viene rimosso solo il primo gestore nell'archivio del gestore eventi. Questo comportamento è coerente con il comportamento CLR dell'operatore -= .

routedEvent né può essere null.handler Se si tenta di specificare uno dei due valori, null verrà generata un'eccezione.

Questo metodo ignora le informazioni sui handledEventsToo parametri, fornite se il gestore è stato aggiunto per la prima volta con la AddHandler(RoutedEvent, Delegate, Boolean) firma che consente la gestione degli eventi già gestiti. Viene rimosso uno dei due tipi di gestore.

Si applica a

Vedi anche