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.

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

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