Widok w MVVM

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Widok (ang. View) w architekturze MVVM odpowiada za warstwę prezentacji aplikacji, czyli za to, co widzi i z czym pracuje użytkownik. Są to najczęściej okna, formularze, ekrany, kontrolki, przyciski, pola tekstowe, listy oraz inne elementy interfejsu użytkownika.

Główne zadania widoku

Do zadań widoku należy przede wszystkim:

  • tworzenie i prezentowanie interfejsu użytkownika,
  • obsługa podstawowych interakcji użytkownika, np. kliknięć, wyboru elementu, wpisywania tekstu,
  • wyświetlanie danych otrzymanych z ViewModelu,
  • przekazywanie akcji użytkownika do ViewModelu, zwykle przez mechanizm bindowania lub komendy.

W pytaniach egzaminacyjnych poprawna odpowiedź dotycząca widoku to zwykle: stworzenie UI i obsługa interakcji użytkownika.

Czego widok nie powinien robić?

Widok nie powinien zawierać głównej logiki biznesowej aplikacji. Nie powinien też samodzielnie przetwarzać danych ani komunikować się bezpośrednio z bazą danych, jeśli projekt jest zgodny z MVVM.

Przykładowo:

  • algorytmy i reguły działania aplikacji należą zwykle do Modelu lub ViewModelu,
  • przygotowanie danych dla widoku to zadanie ViewModelu,
  • przechowywanie danych należy do Modelu.

Przykład

W aplikacji WPF widokiem może być plik XAML zawierający przycisk i pole tekstowe:

<TextBox Text="{Binding UserName}" />
<Button Content="Zapisz" Command="{Binding SaveCommand}" />

Widok definiuje wygląd kontrolek, ale właściwość UserName i komenda SaveCommand znajdują się w ViewModelu.