UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.RemoveHandler(RoutedEvent, Delegate) Method

Определение

Удаляет указанный обработчик маршрутизируемого события из этого элемента.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

Параметры

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Идентификатор перенаправленного события, к которому прикреплен обработчик.The identifier of the routed event for which the handler is attached.

handler
Delegate Delegate Delegate

Конкретная реализация удаляемого обработчика из коллекции обработчиков событий этого элемента.The specific handler implementation to remove from the event handler collection on this element.

Реализации

Примеры

В следующем примере используется RemoveHandler как часть определения программы-оболочки событий.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

Комментарии

Наиболее распространенный сценарий использования это APIAPI — при реализации среда CLRcommon language runtime (CLR) событий «оболочки», который связан с пользовательских перенаправленных событий, в частности в том случае, при реализации логики «удалить» для обработчиков CLRCLR уровень.The most common scenario for using this APIAPI is when you implement the среда CLRcommon 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. Это в следующем примере этот сценарий представлен в разделе "Примечания".The example that follows this remarks section illustrates this scenario.

Вызов этого метода не оказывает влияния, если обработчики, зарегистрированные с критериями, извлекающий входные параметры для вызова метода, отсутствуют.Calling this method has no effect if there were no handlers registered with criteria that matches the input parameters for the method call.

Если более чем один обработчик подключен, соответствующих критериям, только первый обработчик в удаляется хранилищу обработчика событий.If more than one handler is attached that matched the criteria, only the first handler in the event handler store is removed. Такое поведение согласуется с CLRCLR поведение -= оператор.This behavior is consistent with CLRCLR behavior of the -= operator.

Ни routedEvent , ни handler может быть null.Neither routedEvent nor handler may be null. Попытка присвоить одно из значений как null приведет к появлению исключения.Attempting to provide either value as null will raise an exception.

Этот метод игнорирует handledEventsToo сведения о параметрах, который предоставляется в том случае, если обработчик был первоначально добавлены с классом AddHandler(RoutedEvent, Delegate, Boolean) подпись, которая позволит вам управлять уже обработанных событий.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. Любой из типов обработчика удаляется.Either type of handler is removed.

Применяется к

Дополнительно