Aracılığıyla paylaş


UIElement.RemoveHandler(RoutedEvent, Delegate) Yöntem

Tanım

Belirtilen yönlendirilmiş olay işleyicisini bu öğeden kaldırır.

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)

Parametreler

routedEvent
RoutedEvent

İşleyicinin eklendiği yönlendirilmiş olayın tanımlayıcısı.

handler
Delegate

Bu öğedeki olay işleyicisi koleksiyonundan kaldırılacak belirli işleyici uygulaması.

Uygulamalar

Örnekler

Aşağıdaki örnek, olay sarmalayıcı tanımının bir parçası olarak kullanır 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

Açıklamalar

Bu API'yi kullanmaya yönelik en yaygın senaryo, özel yönlendirilmiş bir olayla ilişkili ortak dil çalışma zamanı (CLR) "sarmalayıcı" olayını uyguladığınızda, özellikle de CLR düzeyinde işleyiciler için "kaldır" mantığını uyguladığınızda gerçekleşir. Bu açıklamalar bölümünü izleyen örnekte bu senaryo gösterilmektedir.

Yöntem çağrısının giriş parametreleriyle eşleşen ölçütlerle kaydedilmiş işleyiciler yoksa bu yöntemi çağırmanın hiçbir etkisi olmaz.

Ölçütle eşleşen birden fazla işleyici eklenmişse, yalnızca olay işleyici deposundaki ilk işleyici kaldırılır. Bu davranış, işlecin CLR davranışıyla -= tutarlıdır.

Ne routedEvent olabilir ne de handler olabilir null. her null iki değeri de sağlama girişimi bir özel durum oluşturur.

Bu yöntem, işleyici önceden işlenen olayların işlenmesine olanak tanıyan imza ile AddHandler(RoutedEvent, Delegate, Boolean) eklendiğinde sağlanan parametre bilgilerini yoksayarhandledEventsToo. her iki işleyici türü de kaldırılır.

Şunlara uygulanır

Ayrıca bkz.