UIElement.RemoveHandler(RoutedEvent, Delegate) Metoda

Definice

Odebere zadanou směrovanou obslužnou rutinu události z tohoto prvku.

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)

Parametry

routedEvent
RoutedEvent

Identifikátor směrované události, pro kterou je obslužná rutina připojena.

handler
Delegate

Konkrétní implementace obslužné rutiny pro odebrání z kolekce obslužné rutiny událostí v tomto prvku.

Implementuje

Příklady

Následující příklad se používá RemoveHandler jako součást definice obálky události.

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

Poznámky

Nejběžnějším scénářem použití tohoto rozhraní API je implementace události CLR (Common Language Runtime), která je přidružená k vlastní směrované události, konkrétně při implementaci logiky odebrání obslužných rutin na úrovni CLR. Tento scénář znázorňuje příklad, který následuje za touto poznámkou.

Volání této metody nemá žádný vliv, pokud nebyly zaregistrované žádné obslužné rutiny s kritérii, které odpovídají vstupním parametrům volání metody.

Pokud je připojeno více než jedna obslužná rutina, která odpovídá kritériím, odebere se pouze první obslužná rutina v úložišti obslužných rutin událostí. Toto chování je konzistentní s chováním operátora -= CLR.

handler Ani routedEvent nesmí být null. Při pokusu o zadání jedné hodnoty null dojde k výjimce.

Tato metoda ignoruje informace o parametrech handledEventsToo , které se poskytují, pokud byla obslužná rutina poprvé přidána s AddHandler(RoutedEvent, Delegate, Boolean) podpisem, který umožňuje zpracování již zpracovaných událostí. Odebere se některý typ obslužné rutiny.

Platí pro

Viz také