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 otoki środowiska uruchomieniowego języka wspólnego (CLR) skojarzonego z niestandardowym zdarzeniem routingu, w szczególności w przypadku zaimplementowania logiki "Remove" dla programów obsługi na poziomie CLR.The most common scenario for using this API is when you implement the 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 CLR 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 środowiska CLR dla -= operatora.This behavior is consistent with CLR behavior of the -= operator.

Nie routedEvent handler może być ani null .Neither routedEvent nor handler may be null. Próba dostarczenia żadnej wartości jako spowoduje wystąpienie null 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 wraz z AddHandler(RoutedEvent, Delegate, Boolean) podpisem, który 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ż