Nyelv

UIElement.RemoveHandler(RoutedEvent, Delegate) Metódus

Definíció

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.

A következőre érvényes:

Lásd még