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.
Ни не routedEvent
handler
может быть null
. Попытка указать любое значение, как null
это приведет к возникновению исключения.
Этот метод игнорирует handledEventsToo
сведения о параметрах, которые предоставляются при первом добавлении обработчика с подписью AddHandler(RoutedEvent, Delegate, Boolean) , которая обеспечивает обработку уже обработанных событий. Удаляется любой тип обработчика.