WinUI Notes Teil 2 – Navigation und Datenbindung

In diesem Lernprogramm wird die Verwendung von Navigation und Datenbindung in einer WinUI 3-App mit XAML und C# veranschaulicht.

In diesem Tutorial erfahren Sie, wie:

  • Aktivieren Sie NavigationCacheMode, um beim Navigieren dieselbe Instanz einer Page beizubehalten.
  • Implementieren Sie die INotifyPropertyChanged Schnittstelle, um eine Datenbindung darüber zu informieren, dass Daten aktualisiert wurden.
  • Übergeben Sie Objekte zwischen Seiten, wenn Sie navigieren.

Dieses Tutorial baut auf der Beispiel-App WinUI Notes aus dem Tutorial Erstellen Ihrer ersten WinUI 3-App auf. Wenn Sie dieses Lernprogramm abgeschlossen haben, können Sie mit demselben Code fortfahren. Alternativ können Sie den vollständigen Code für dieses Lernprogramm aus dem GitHub Repository herunterladen und als Ausgangspunkt für dieses Lernprogramm verwenden.

In beiden Fällen sollten Sie mit den vorgestellten Konzepten und dem code vertraut sein, der im Ersten WinUI 3-App-Lernprogramm erstellt wurde.

Tip

Sie können auch den vollständigen Code für dieses Lernprogramm aus dem GitHub Repository in WinUI Notes Teil 2 herunterladen oder anzeigen. Informationen zu den Unterschieden zwischen den Anfangs- und Endpunkten für das Projekt finden Sie unter diesem Commit: Updates für Teil 2.

Background

Um es einfach zu halten und einige grundlegende Konzepte einzuführen, konzentrierte sich das Tutorial Erstellen Ihrer ersten WinUI 3-App eher auf Einfachheit als auf Effizienz. Während die App funktioniert, gibt es einige Dinge, die verbessert werden können.

Das Hauptproblem hat mit der Navigation zwischen den Seiten in der App zu tun. Standardmäßig werden Seiteninstanzen beim Navigieren nicht gespeichert, sodass bei jeder Navigation zu einer Pageneuen Instanz eine neue Instanz erstellt wird. In der WinUI Notes-App wird das notesModel Objekt im AllNotesPage Konstruktor erstellt und durch Lesen aller Notizen aus dem Dateisystem aufgefüllt.

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

Jedes Mal, wenn Sie von NotePage zurück zu AllNotesPage navigieren, wird notesModel erneut erstellt und alle Notizen werden erneut aus dem Dateisystem gelesen. Diese Ineffizienz ist in der Regel in einer kleinen Beispiel-App ohne viel Daten nicht erkennbar, aber es wäre inakzeptabel in einer Fotos-App, die Tausende großer Bilder aus dem Dateisystem liest.

Um dieses Problem zu beheben, behandelt dieses Lernprogramm die folgenden Schritte:

  • Stellen Sie zunächst sicher, dass die Page Instanz zwischengespeichert wird, damit sie beim Navigieren wiederverwendet und nicht erneut erstellt wird.
  • Aktualisieren Sie die Note Klasse so, dass gebundene Eigenschaften benachrichtigt werden, wenn Änderungen am Notiztext vorhanden sind.
  • Stellen Sie sicher, dass die notesModel Aktualisierung ordnungsgemäß mit gespeicherten oder gelöschten Notizen erfolgt, da sie nicht mit jeder Navigation neu erstellt wird.

Tip

Sie verweisen häufig auf API-Referenzdokumente und konzeptionelle Dokumente beim Erstellen von Windows-Apps. In diesem Tutorial werden Links inline im Text und in Gruppen mit der Bezeichnung "Weitere Informationen in der Dokumentation:" angezeigt. Diese Links sind optional; Sie müssen sie nicht befolgen, um das Lernprogramm abzuschließen. Sie werden für den Fall bereitgestellt, dass Sie notieren möchten, wo Sie die Informationen finden, die Sie benötigen, wenn Sie mit der Erstellung Ihrer eigenen Apps beginnen.