UIElement.RemoveHandler(RoutedEvent, Delegate) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したルーティング イベント ハンドラーをこの要素から削除します。
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) 追加された場合に提供されるパラメーター情報を無視します。 いずれかの種類のハンドラーが削除されます。