Nowa wersja Framework’a wprowadza kilka nowości w rejonie eventów.
Każdy event ma przyporządkowaną strategię, którą event jest propagowany.
Dostępne strategie(nazwy angielskie):
– tunelling
– bubbling
– direct
Strategie te różnią się kolejnością, w której kolejne kontrolki otrzymują eventy.
W strategii 1, event zaczyna się na elemencie korzeniu a następnie każdy element w dół drzewa elementów. Event w strategii 2 rozpoczyna się na elemencie źródłówym a następnie jest propagowany w górę. W trzeciej strategii event jest wywolywany bezpośrednio na elemencie, którego dotyczy (jest to technika równoważna starej wersji eventów).
Wiele elementów UI znajdujących się w nowym frameworku posiada event’y typu (bubbling) jak również dodatkowy even’t typu tunelling. Event typu tunelling rozpoczyna się słówkiem Preview. Jaksama nazwa wskazuje, event ten propagowany jest przed głównym eventem. W evencie tym możemy zaznaczyć, że event został już obsłużony (ustawienie flagi Handled) i dzięki temu zatrzymać dalsze propagowanie zdarzenia. Dzięki temu, że WPF obsługuje zdarzenia na eventach typu bubbling, możliwe jest podpięcie się pod zdarzenie Preview i dzięki temu zablokowanie jakiegoś zdarzenia (np. umożliwienie wprowadzania tylko konkretnych znaków
do TextBox’a).
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl