UIElement.RemoveHandler(RoutedEvent, Delegate) Метод

Определение

Удаляет указанный обработчик перенаправленных событий из этого элемента.

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)

Параметры

routedEvent
RoutedEvent

Идентификатор перенаправленного события, для которого подключен обработчик.

handler
Delegate

Конкретная реализация обработчика для удаления из коллекции обработчиков событий в этом элементе.

Реализации

Примеры

В следующем примере используется RemoveHandler как часть определения оболочки событий.

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

Комментарии

Наиболее распространенный сценарий использования этого API заключается в реализации события среды CLR (CLR), связанного с пользовательским перенаправленным событием, в частности при реализации логики удаления обработчиков на уровне СРЕДЫ CLR. Пример, приведенный в этом разделе примечаний, иллюстрирует этот сценарий.

Вызов этого метода не действует, если обработчики не регистрировались с критериями, соответствующими входным параметрам для вызова метода.

Если несколько обработчиков подключены, соответствующие условиям, удаляется только первый обработчик в хранилище обработчика событий. Это поведение согласуется с поведением -= clR оператора.

Ни routedEventhandler не может быть null. Попытка указать любое значение, как null вызовет исключение.

Этот метод игнорирует handledEventsToo сведения о параметрах, которые предоставляются при первом добавлении обработчика с AddHandler(RoutedEvent, Delegate, Boolean) подписью, которая обеспечивает обработку уже обработанных событий. Удаляется любой тип обработчика.

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

См. также раздел