Notes WinUI partie 2 : liaison de navigation et de données

Ce tutoriel montre comment utiliser la navigation et la liaison de données dans une application WinUI 3 à l’aide de XAML et C#.

Dans ce tutoriel, vous allez apprendre à :

  • Permet NavigationCacheMode de conserver la même instance d’un Page lors de la navigation.
  • Implémentez l’interface INotifyPropertyChanged pour informer une liaison de données que les données ont été mises à jour.
  • Passez des objets entre les pages lors de la navigation.

Ce tutoriel s’appuie sur l’exemple d’application WinUI Notes issu du tutoriel Créer votre première application WinUI 3. Si vous avez terminé ce didacticiel, vous pouvez continuer à utiliser le même code. Vous pouvez également télécharger le code complet de ce didacticiel à partir du dépôt GitHub et l’utiliser comme point de départ pour ce didacticiel.

Dans les deux cas, vous devez être familiarisé avec les concepts présentés et le code créé dans le didacticiel Créer votre première application WinUI 3 .

Conseil / Astuce

Vous pouvez également télécharger ou afficher le code terminé pour ce didacticiel à partir du dépôt GitHub dans la partie 2 des notes WinUI. Pour voir les différences entre les points de départ et d’arrivée du projet, consultez ce commit : mises à jour pour la partie 2.

Background

Afin de simplifier et d’introduire des concepts fondamentaux, le didacticiel Créer votre première application WinUI 3 s’est concentré sur la simplicité sur l’efficacité. Ainsi, pendant que l’application fonctionne, certaines choses peuvent être améliorées.

Le problème clé doit être lié à la navigation entre les pages de l’application. Par défaut, les instances de page ne sont pas enregistrées lors de la navigation. Par conséquent, chaque fois que vous accédez à un Page, une nouvelle instance est créée. Dans l’application Notes WinUI, l’objet notesModel est créé dans le constructeur AllNotesPage et est alimenté en lisant toutes les notes à partir du système de fichiers.

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

Chaque fois que vous naviguez de NotePage à AllNotesPage, notesModel est recréé et toutes les notes sont relues depuis le système de fichiers. Cette inefficacité n’est généralement pas perceptible dans un petit exemple d’application sans beaucoup de données, mais il serait inacceptable dans, par exemple, une application de photos qui lisait des milliers d’images volumineuses à partir du système de fichiers.

Pour résoudre ce problème, ce didacticiel décrit les étapes suivantes :

  • Tout d’abord, assurez-vous que l’instance Page est mise en cache afin que, lors de la navigation, elle soit réutilisée et non recréée.
  • Mettez à jour la Note classe afin que les propriétés liées soient averties lorsqu’il existe des modifications apportées au texte de la note.
  • Vérifiez que le fichier notesModel est correctement mis à jour avec des notes enregistrées ou supprimées, car il n’est pas recréé avec chaque navigation.

Conseil / Astuce

Vous allez fréquemment faire référence à des documents de référence d’API et à des documents conceptuels lors de la création d’applications Windows. Dans ce didacticiel, vous verrez des liens inline dans le texte et dans des groupes étiquetés « En savoir plus dans la documentation : ». Ces liens sont facultatifs ; vous n’avez pas besoin de les suivre pour suivre le didacticiel. Elles sont fournies au cas où vous souhaitez noter où trouver les informations dont vous aurez besoin lorsque vous commencez à créer vos propres applications.