UIElement.RemoveHandler(RoutedEvent, Delegate) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Eltávolítja a megadott irányított eseménykezelőt ebből az elemből.
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)
Paraméterek
- routedEvent
- RoutedEvent
Annak az irányított eseménynek az azonosítója, amelyhez a kezelő csatlakoztatva van.
- handler
- Delegate
Az adott kezelő implementációja, amely eltávolítható az elem eseménykezelő gyűjteményéből.
Megvalósítás
Példák
Az alábbi példa egy eseményburkoló definíciójának részeként használja 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
Megjegyzések
Az API használatának leggyakoribb forgatókönyve a közös nyelvi futtatókörnyezeti (CLR) "burkoló" esemény implementálása, amely egy egyéni irányított eseményhez van társítva, különösen akkor, ha a kezelők számára a CLR szintjén implementálja a "remove" logikát. A megjegyzéseket követő példa ezt a forgatókönyvet szemlélteti.
A metódus meghívásának nincs hatása, ha nincsenek olyan feltételekkel regisztrált kezelők, amelyek megfelelnek a metódushívás bemeneti paramétereinek.
Ha több olyan kezelő van csatlakoztatva, amely megfelel a feltételeknek, csak az eseménykezelő tár első kezelője lesz eltávolítva. Ez a viselkedés összhangban van az -= operátor CLR-viselkedésével.
Sem routedEvent nem handler lehet null. Ha bármelyik értéket megkísérli megadni, az null kivételt fog eredményezni.
Ez a módszer figyelmen kívül hagyja a handledEventsToo paraméteradatokat, amelyek akkor lesznek megadva, ha a kezelőt először hozzáadták az AddHandler(RoutedEvent, Delegate, Boolean) aláírással, amely lehetővé teszi a már kezelt események kezelését. A rendszer eltávolítja a kezelő egyik típusát.