UIElement.RemoveHandler(RoutedEvent, Delegate) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odebere zadanou směrovanou obslužnou rutinu události z tohoto prvku.
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)
Parametry
- routedEvent
- RoutedEvent
Identifikátor směrované události, pro kterou je obslužná rutina připojena.
- handler
- Delegate
Konkrétní implementace obslužné rutiny pro odebrání z kolekce obslužné rutiny událostí v tomto prvku.
Implementuje
Příklady
Následující příklad se používá RemoveHandler jako součást definice obálky události.
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
Poznámky
Nejběžnějším scénářem použití tohoto rozhraní API je implementace události CLR (Common Language Runtime), která je přidružená k vlastní směrované události, konkrétně při implementaci logiky odebrání obslužných rutin na úrovni CLR. Tento scénář znázorňuje příklad, který následuje za touto poznámkou.
Volání této metody nemá žádný vliv, pokud nebyly zaregistrované žádné obslužné rutiny s kritérii, které odpovídají vstupním parametrům volání metody.
Pokud je připojeno více než jedna obslužná rutina, která odpovídá kritériím, odebere se pouze první obslužná rutina v úložišti obslužných rutin událostí. Toto chování je konzistentní s chováním operátora -=
CLR.
handler
Ani routedEvent
nesmí být null
. Při pokusu o zadání jedné hodnoty null
dojde k výjimce.
Tato metoda ignoruje informace o parametrech handledEventsToo
, které se poskytují, pokud byla obslužná rutina poprvé přidána s AddHandler(RoutedEvent, Delegate, Boolean) podpisem, který umožňuje zpracování již zpracovaných událostí. Odebere se některý typ obslužné rutiny.