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.