Podsumowanie i test wiedzy

Ukończone

W tym module pokazano, jak platforma uniwersalna systemu Windows (UWP) i Windows Presentation Foundation (WPF) obsługują powiązanie danych. Teraz wiesz więcej na temat procesu łączenia interfejsu użytkownika i logiki biznesowej aplikacji w zautomatyzowany, niezawodny i wydajny sposób.

Wiesz już, jak zaktualizować interfejs użytkownika, gdy właściwość obiektu zmieni się w kodzie i jak zaktualizować właściwość po zmianie interfejsu użytkownika. Wyświetlono listę elementów (takich jak kolory) w obiekcie ListBox lub ComboBox: tylko dwie z wielu kontrolek, których można użyć do pokazania kolekcji elementów na ekranie. Jeśli wykonano instrukcje z każdego samouczka, teraz masz również praktyczne doświadczenie w sposobie kontrolowania wyświetlania poszczególnych elementów w tych kontrolkach. Masz również doświadczenie w sposobie powiadamiania logiki biznesowej o wybraniu elementu przez użytkownika. Na koniec wiesz już, jak automatycznie odzwierciedlać zmiany w kolekcji (takie jak dodawanie lub usuwanie elementów) w interfejsie użytkownika.

Ta separacja interfejsu użytkownika i logiki ma kluczowe znaczenie podczas tworzenia nawet umiarkowanie złożonych aplikacji. Umożliwia ona logikę biznesową (kod) do myślenia pod względem obiektów biznesowych. Na przykład nie musieliśmy brać pod uwagę TextBox kontrolki w naszej logice, gdy zażądaliśmy nazwy użytkownika. Musieliśmy poradzić sobie tylko z obiektem String wprowadzonego tekstu. Nasza lista ulubionych kolorów przechowywała rzeczywiste ColorDescriptor obiekty zamiast obiektów związanych z interfejsem użytkownika, takich jak ListItem. Jednak dzięki powiązaniu danych interfejs użytkownika może nadal wyświetlać te elementy w dowolny sposób wybierany przez projektanta: w układzie przypominającym ListBoxComboBoxsiatkę z kartami, a nawet karuzeli. Logika biznesowa nie będzie musiała zostać zmieniona dla żadnej z tych opcji.

Prawidłowe rozdzielenie logiki i interfejsu użytkownika umożliwia również pisanie oddzielnych automatycznych testów jednostkowych dla logiki biznesowej. Te testy można uruchomić bez uruchamiania aplikacji (na przykład przy użyciu testów jednostkowych programu Visual Studio). Testy polegają na wypróbowanym i przetestowanym mechanizmie wiązania danych w celu przesyłania danych między interfejsem użytkownika a kodem logiki biznesowej.

Upraszczanie kodowania klas

Na koniec w tym module pokazano, jak można wykorzystać klasę bazową, aby uprościć kodowanie klas przyjaznych dla powiązań danych. Był to pierwszy krok w stosowaniu najlepszych rozwiązań branżowych architektury Model-View-ViewModel (MVVM).

Model, w naszym małym przykładzie, jest dobrze przedstawiony przez klasę ColorDescriptor . Dane przechowywane na temat rzeczywistego obiektu lub koncepcji są w tym przypadku kolorem.

Widok to nasz kod XAML, MainPage.xaml (UWP) / MainWindow.xaml (WPF) i ColorList.xaml, wraz z plikami za pomocą kodu, MainPage.xaml.cs (UWP) / MainWindow.xaml.cs (WPF) i ColorList.xaml.cs.

Model widoku to rzeczywista logika biznesowa kierująca interfejs użytkownika, podejmując decyzje (na przykład czy przycisk powinien być włączony). W naszym przykładzie platformy MainPageLogic UWP klasy i ColorListLogic są zasadniczo klasami viewmodel. W przykładzie MainWindowDataContextWPF klasy , Clocki ColorListDataContext klasy są modelami widoków.

MVVM to najczęściej używany wzorzec architektury dla struktur interfejsu użytkownika obsługujących powiązanie danych. Dostępnych jest wiele zestawów narzędzi i struktur MVVM, które mogą szybko rozpocząć tworzenie aplikacji na platformie UWP i WPF, a nawet zestaw SDK aplikacji systemu Windows i program .NET MAUI. Oto niektóre z najpopularniejszych:

Zanim przejdziesz...

Teraz, po skonfigurowaniu się na potrzeby programowania w systemie Windows, zachęcamy do uczenia się. Zapoznaj się z następnym modułem, aby dowiedzieć się więcej na temat łączenia aplikacji z chmurą. Najpierw sprawdź swoją wiedzę, wykonując następujący test.

Test wiedzy

1.

Co to jest powiązanie danych?

2.

Który interfejs należy zaimplementować, aby odzwierciedlić zmianę właściwości języka C# w interfejsie użytkownika?

3.

Co należy zrobić, aby przenieść tekst wprowadzony w polu tekstowym do właściwości ciągu języka C# za pomocą powiązania danych?

4.

Co należy zrobić, aby wyświetlić obiekty przechowywane w kolekcji IEnumerable w polu listy?

5.

Dodajesz elementy do kolekcji, gdy aplikacja jest uruchomiona. Jak wprowadzić zmiany w interfejsie użytkownika?