Notatki WinUI — część 2 — nawigacja i powiązanie danych

W tym samouczku pokazano, jak używać powiązania nawigacji i danych w aplikacji WinUI 3 przy użyciu języka XAML i języka C#.

W tym poradniku nauczysz się, jak:

  • Włącz NavigationCacheMode, aby zachować to samo wystąpienie obiektu Page podczas nawigacji.
  • Zaimplementuj interfejs INotifyPropertyChanged, aby poinformować mechanizm wiązania danych, że dane zostały zaktualizowane.
  • Przekazywanie obiektów między stronami podczas nawigowania.

Ten samouczek stanowi rozwinięcie przykładowej aplikacji WinUI Notes z samouczka Create your first WinUI 3 app. Jeśli ukończono ten samouczek, możesz kontynuować pracę z tym samym kodem. Możesz też pobrać ukończony kod dla tego samouczka z repozytorium GitHub i użyć go jako punktu początkowego dla tego samouczka.

W obu przypadkach należy zapoznać się z przedstawionymi pojęciami i kodem utworzonym w samouczku Tworzenie pierwszej aplikacji WinUI 3 .

Napiwek

Możesz również pobrać lub wyświetlić ukończony kod dla tego samouczka z repozytorium GitHub w sekcji Notatki winUI — część 2. Aby zobaczyć różnice między stanem początkowym i końcowym projektu, zobacz ten commit: aktualizacje do części 2.

Background

Aby zachować prostotę i wprowadzić pewne podstawowe pojęcia, samouczek Tworzenie pierwszej aplikacji WinUI 3 koncentruje się na prostotzie nad wydajnością. Dlatego podczas działania aplikacji istnieją pewne elementy, które można ulepszyć.

Kluczowy problem ma związek z nawigowaniem między stronami w aplikacji. Domyślnie wystąpienia strony nie są zapisywane podczas nawigowania, więc za każdym razem, gdy przejdziesz do Pageobiektu , zostanie utworzone nowe wystąpienie. W aplikacji Notatki WinUI obiekt notesModel jest tworzony w konstruktorze AllNotesPage i wypełniany na podstawie wszystkich notatek odczytanych z systemu plików.

public sealed partial class AllNotesPage : Page
{
    private AllNotes notesModel = new AllNotes();
    ...
}

Za każdym razem, gdy wracasz z NotePage do AllNotesPage, element notesModel jest ponownie tworzony, a wszystkie notatki są odczytywane ponownie z systemu plików. Ta nieefektywność zwykle nie jest zauważalna w małej przykładowej aplikacji bez dużej ilości danych, ale byłaby niedopuszczalna, na przykład w aplikacji zdjęć, która odczytywała tysiące dużych obrazów z systemu plików.

Aby rozwiązać ten problem, ten samouczek obejmuje następujące kroki:

  • Najpierw upewnij się, że instancja Page jest przechowywana w pamięci podręcznej, aby podczas nawigacji była używana ponownie, a nie tworzona od nowa.
  • Zaktualizuj klasę, Note tak aby powiązane właściwości były powiadamiane, gdy wprowadzono jakiekolwiek zmiany w tekście notatki.
  • Upewnij się, że element notesModel jest poprawnie aktualizowany po zapisaniu lub usunięciu notatek, ponieważ nie jest tworzony ponownie przy każdym przejściu.

Napiwek

Podczas tworzenia aplikacji systemu Windows często odwołujesz się do dokumentacji referencyjnej interfejsu API i dokumentacji koncepcyjnej. W tym samouczku zobaczysz linki wbudowane w tekście i w grupach oznaczonych etykietą "Dowiedz się więcej w dokumentacji:". Te linki są opcjonalne; Nie musisz ich obserwować, aby ukończyć samouczek. Są one udostępniane w przypadku, gdy chcesz zanotować, gdzie można znaleźć potrzebne informacje, gdy zaczniesz tworzyć własne aplikacje.