UIElement.RemoveHandler(RoutedEvent, Delegate) Metoda

Definicja

Usuwa z tego elementu określoną procedurę obsługi zdarzeń kierowanych.

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

Identyfikator zdarzenia kierowanego, dla którego jest dołączony program obsługi.

handler
Delegate

Określona implementacja programu obsługi, która ma zostać usunięta z kolekcji obsługi zdarzeń w tym elemecie.

Implementuje

Przykłady

W poniższym przykładzie użyto RemoveHandler jako części definicji otoki zdarzeń.

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

Uwagi

Najbardziej typowym scenariuszem użycia tego interfejsu API jest zaimplementowanie zdarzenia "otoki" środowiska uruchomieniowego języka wspólnego (CLR), które jest skojarzone z niestandardowym zdarzeniem kierowanym, w szczególności podczas implementowania logiki "usuń" dla procedur obsługi na poziomie CLR. Przykład, który jest zgodny z tą sekcją uwag, ilustruje ten scenariusz.

Wywołanie tej metody nie ma wpływu, jeśli nie zarejestrowano procedur obsługi z kryteriami, które pasują do parametrów wejściowych wywołania metody.

Jeśli dołączono więcej niż jedną procedurę obsługi zgodną z kryteriami, zostanie usunięty tylko pierwszy program obsługi w magazynie programu obsługi zdarzeń. To zachowanie jest zgodne z zachowaniem -= środowiska CLR operatora.

Ani routedEvent handler nie może być null. Próba podania jednej z tych wartości null spowoduje wystąpienie wyjątku.

Ta metoda ignoruje informacje o parametrach handledEventsToo , które są udostępniane, jeśli program obsługi został dodany po raz pierwszy z podpisem AddHandler(RoutedEvent, Delegate, Boolean) , który umożliwia obsługę zdarzeń już obsługiwanych. Usuwany jest dowolny typ procedury obsługi.

Dotyczy

Zobacz też