UIElement.AddHandler Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie.
Przeciążenia
AddHandler(RoutedEvent, Delegate) |
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie. |
AddHandler(RoutedEvent, Delegate, Boolean) |
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie. Określ |
AddHandler(RoutedEvent, Delegate)
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie.
public:
virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)
Parametry
- routedEvent
- RoutedEvent
Identyfikator zdarzenia kierowanego do obsłużenia.
- handler
- Delegate
Odwołanie do implementacji programu obsługi.
Implementuje
Uwagi
Tę samą procedurę obsługi dla tego samego zdarzenia można dodać wiele razy bez zgłaszania wyjątku. Jednak procedura obsługi jest wywoływana wielokrotnie, gdy zdarzenie jest obsługiwane. W związku z tym należy wziąć pod uwagę, jak to zachowanie może mieć skutki uboczne, które powinny być uwzględniane w implementacji programu obsługi.
Ta metoda zwykle służy do zapewniania implementacji metody dostępu "dodaj" dla wzorca dostępu zdarzeń platformy Microsoft .NET dla niestandardowego zdarzenia kierowanego.
Dotyczy
AddHandler(RoutedEvent, Delegate, Boolean)
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie. Określ handledEventsToo
jako true
, aby podana procedura obsługi była wywoływana dla zdarzenia kierowanego, które zostało już oznaczone jako obsługiwane przez inny element wzdłuż trasy zdarzeń.
public:
void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)
Parametry
- routedEvent
- RoutedEvent
Identyfikator zdarzenia kierowanego do obsłużenia.
- handler
- Delegate
Odwołanie do implementacji programu obsługi.
- handledEventsToo
- Boolean
true
zarejestrować program obsługi, tak aby był wywoływany nawet wtedy, gdy zdarzenie kierowane jest oznaczone jako obsługiwane w danych zdarzenia; false
, aby zarejestrować procedurę obsługi z domyślnym warunkiem, że nie zostanie wywołany, jeśli zdarzenie kierowane jest już oznaczone jako obsługiwane.
Wartość domyślna to false
.
Nie należy rutynowo prosić o ponowne obsługa zdarzenia kierowanego.
Przykłady
Poniższy przykład implementuje procedurę obsługi wywoływaną na zdarzeniu Initialized na stronie, która dołącza zdefiniowaną procedurę obsługi do jednego z nazwanych elementów na stronie przy użyciu handledEventsToo
true
. Ta procedura obsługi zostanie wywołana nawet wtedy, gdy inny element wzdłuż trasy oznaczył udostępnione dane zdarzenia jako obsługiwane przed dotarciem do elementu obsługi w trasie.
void PrimeHandledToo(object sender, EventArgs e)
{
dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub
Uwagi
Przetwarzanie zdarzeń wejściowych niskiego poziomu w praktyczny sposób jest złożonym zadaniem. Wiele kontrolek implementuje zachowanie, w którym określone zdarzenie jest oznaczone jako obsługiwane i jest zastępowane przez inne bardziej intuicyjne zdarzenie. Ogólnie rzecz biorąc, kontrolka będzie oznaczać zdarzenie wejściowe platformy jako obsługiwane, jeśli istnieje jakiś zamiar projektowania w tym celu. W niektórych scenariuszach intencje projektowe mogą nie być tym, czego wymaga Twoja konkretna obsługa zdarzenia wejściowego. W przypadku tych scenariuszy rejestrowanie programów obsługi przy użyciu handledEventsToo
jest odpowiednie, ponieważ true
. Ale nie należy tego robić rutynowo. Wywoływanie procedur obsługi w odpowiedzi na wszystkie zdarzenia, nawet jeśli są obsługiwane, komplikuje własną logikę przetwarzania zdarzeń aplikacji. Jeśli logika obsługi jest znacząca, może wystąpić spadek wydajności. Należy zarezerwować użycie dołączania procedur obsługi dla zdarzeń już obsługiwanych w sytuacjach, w których już odnaleziono w procesie programowania, że niektóre kontrolki obsługują zdarzenia, które nadal mają być obsługiwane za pomocą logiki aplikacji.
Inną techniką unikania zachowania obsługi klas niektórych kombinacji kontroli zdarzeń jest użycie alternatywnej wersji zapoznawczej tego zdarzenia. Jeśli na przykład MouseLeftButtonDown jest oznaczona jako obsługiwana przez obsługę klas, może być możliwe dodanie procedur obsługi dla PreviewMouseLeftButtonDown.
Tę samą procedurę obsługi dla tego samego zdarzenia można dodać wiele razy bez zgłaszania wyjątku. Jednak procedura obsługi jest wywoływana wielokrotnie, gdy zdarzenie jest obsługiwane. W związku z tym należy wziąć pod uwagę, jak to zachowanie może mieć skutki uboczne, które powinny być uwzględniane w implementacji programu obsługi.
Ta metoda zwykle służy do zapewniania implementacji metody dostępu "dodaj" dla wzorca dostępu zdarzeń platformy Microsoft .NET dla niestandardowego zdarzenia kierowanego.