WinUI Notas parte 2 - navegação e ligação de dados

Este tutorial demonstra como usar navegação e ligação de dados numa aplicação WinUI 3 usando XAML e C#.

Neste tutorial, aprenderás como:

  • Ative NavigationCacheMode para manter a mesma instância da Page durante a navegação.
  • Implemente a INotifyPropertyChanged interface para informar um data binding de que os dados foram atualizados.
  • Passe objetos entre páginas ao navegar.

Este tutorial aperfeiçoa a aplicação de exemplo WinUI Notes apresentada no tutorial Criar a sua primeira aplicação WinUI 3. Se já completaste esse tutorial, podes continuar a trabalhar com o mesmo código. Ou pode descarregar o código completo desse tutorial a partir do repositório do GitHub e usá-lo como ponto de partida para este tutorial.

Em qualquer dos casos, deves estar familiarizado com os conceitos apresentados e com o código criado no tutorial Cria a tua primeira aplicação WinUI 3 .

Sugestão

Também pode descarregar ou ver o código completo deste tutorial a partir do repositório do GitHub no WinUI Notes parte 2. Para ver as diferenças entre os pontos inicial e final do projeto, consulte este commit: atualizações para a parte 2.

Background

Para manter as coisas simples e introduzir alguns conceitos fundamentais, o tutorial da aplicação Crie o teu primeiro WinUI 3 focou-se na simplicidade em vez da eficiência. Portanto, embora a aplicação funcione, há algumas coisas que podem ser melhoradas.

A questão principal está relacionada com a navegação entre páginas na aplicação. Por defeito, as instâncias de Página não são guardadas durante a navegação, por isso cada vez que navegas para um Page, cria-se uma nova instância. Na aplicação WinUI Notes, o notesModel objeto é criado no AllNotesPage construtor e é preenchido lendo todas as notas do sistema de ficheiros.

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

Cada vez que navegas de NotePage para AllNotesPage, o notesModel é recriado e todas as notas são lidas novamente a partir do sistema de ficheiros. Esta ineficiência normalmente não é notória numa aplicação de amostras pequena e sem muitos dados, mas seria inaceitável, por exemplo, numa aplicação de fotos que estivesse a ler milhares de imagens grandes do sistema de ficheiros.

Para resolver este problema, este tutorial vai cobrir estes passos:

  • Primeiro, certifique-se de que a Page instância está em cache para que, na navegação, seja reutilizada e não recriada.
  • Atualize a Note classe para que as propriedades atribuídas sejam notificadas quando houver alterações no texto da nota.
  • Certifique-se de que o notesModel é devidamente atualizado com as notas guardadas ou eliminadas, pois não é recriado sempre que se navega.

Sugestão

Você frequentemente consultará documentos de referência de API e documentos conceituais ao criar aplicativos do Windows. Neste tutorial, você verá links embutidos no texto e em grupos rotulados como "Saiba mais nos documentos:". Estes links são opcionais; Você não precisa segui-los para concluir o tutorial. Eles são fornecidos caso você queira anotar onde encontrar as informações necessárias quando começar a criar seus próprios aplicativos.