Źródło: Arkusze CKE
W programie desktopowym stworzono rozwijaną listę oraz przypisano cztery funkcje do obsługi zdarzeń tej kontrolki. Jaki komunikat pojawi się po dokonaniu wyboru w tej liście?
W XAML (uproszczona wersja):
<ComboBox SelectionChanged="Funkcja1" DragEnter="Funkcja2"
LostFocus="Funkcja3" KeyDown="Funkcja4">
</ComboBox>
W kodzie:
private void Funkcja1(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show("Zdarzenie 1");
}
private void Funkcja2(object sender, DragEventArgs e)
{
MessageBox.Show("Zdarzenie 2");
}
private void Funkcja3(object sender, RoutedEventArgs e)
{
MessageBox.Show("Zdarzenie 3");
}
private void Funkcja4(object sender, KeyEventArgs e)
{
MessageBox.Show("Zdarzenie 4");
}
Warianty odpowiedzi
-
A
Zdarzenie 2
-
B
Zdarzenie 3
-
C
Zdarzenie 4
-
D
Zdarzenie 1
Wyjaśnienie
Spójrz na definicję kontrolki ComboBox w kodzie XAML. Do zdarzenia SelectionChanged (czyli zmiany zaznaczonego elementu) została przypisana metoda o nazwie Funkcja1.
Gdy użytkownik wybiera nową pozycję z rozwijanej listy, system wywołuje dokładnie to zdarzenie. Przechodząc do kodu C#, widzimy, że wnętrze metody Funkcja1 wywołuje okno z komunikatem Zdarzenie 1.
Pozostałe funkcja podpięto pod inne akcje: Funkcja2 reaguje na przeciąganie obiektów (DragEnter), Funkcja3 na utratę skupienia (LostFocus), a Funkcja4 na wciśnięcie klawisza (KeyDown). Żadna z nich nie uruchamia się przy zwykłym wyborze elementu z listy.