UIElement.RemoveHandler(RoutedEvent, Delegate) Metoda

Definicja

Usuwa określony moduł obsługi zdarzeń kierowany z tego elementu.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
Public Sub RemoveHandler (routedEvent As RoutedEvent, handler As Delegate)

Parametry

routedEvent
RoutedEvent

Identyfikator zdarzenia kierowanego, do którego jest dołączona procedura obsługi.The identifier of the routed event for which the handler is attached.

handler
Delegate

Określona implementacja programu obsługi do usunięcia z kolekcji programu obsługi zdarzeń w tym elemencie.The specific handler implementation to remove from the event handler collection on this element.

Implementuje

Przykłady

Poniższy przykład używa RemoveHandler jako części definicji otoki zdarzenia.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

Uwagi

Najbardziej typowym scenariuszem korzystania z tego interfejsu API jest zaimplementowanie zdarzenia "otoka" środowisko uruchomieniowe języka wspólnego (CLR)common language runtime (CLR) ", które jest skojarzone z niestandardowym zdarzeniem routingu, w szczególności w przypadku implementacji logiki" Remove "dla programów obsługi na poziomie CLRCLR.The most common scenario for using this API is when you implement the środowisko uruchomieniowe języka wspólnego (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. W tym scenariuszu przedstawiono przykład opisany w poniższej sekcji uwagi.The example that follows this remarks section illustrates this scenario.

Wywołanie tej metody nie działa, jeśli nie ma żadnych programów obsługi zarejestrowanych w kryteriach, które pasują do parametrów wejściowych dla wywołania metody.Calling this method has no effect if there were no handlers registered with criteria that matches the input parameters for the method call.

Jeśli dołączono więcej niż jedną procedurę obsługi, która spełnia kryteria, tylko pierwsza procedura obsługi w magazynie obsługi zdarzeń zostanie usunięta.If more than one handler is attached that matched the criteria, only the first handler in the event handler store is removed. To zachowanie jest spójne z zachowaniem CLRCLR operatora -=.This behavior is consistent with CLRCLR behavior of the -= operator.

Nie routedEvent ani handler mogą być null.Neither routedEvent nor handler may be null. Próba dostarczenia dowolnej wartości jako null spowoduje wystąpienie wyjątku.Attempting to provide either value as null will raise an exception.

Ta metoda ignoruje handledEventsToo informacje o parametrach, które są dostępne, jeśli program obsługi został po raz pierwszy dodany za pomocą sygnatury AddHandler(RoutedEvent, Delegate, Boolean), która umożliwia obsługę już obsłużonych zdarzeń.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. Każdy typ procedury obsługi jest usuwany.Either type of handler is removed.

Dotyczy

Zobacz też