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) подписью, которая обеспечивает обработку уже обработанных событий. Удаляется любой тип обработчика.