UIElement.RemoveHandler(RoutedEvent, Delegate) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.