Resumo e prova de aferição

Concluído

Neste módulo, você viu como a Plataforma Universal do Windows (UWP) e o Windows Presentation Foundation (WPF) oferecem suporte à vinculação de dados. Agora você sabe mais sobre o processo de conexão da interface do usuário e da lógica de negócios do aplicativo de forma automatizada, robusta e de alto desempenho.

Você aprendeu como atualizar a interface do usuário quando uma propriedade de um objeto é alterada no código e como atualizar a propriedade quando a interface do usuário é alterada. Você exibiu uma lista de elementos (como cores) em um ou um ListBoxComboBox: apenas dois dos muitos controles que você pode usar para mostrar uma coleção de itens na tela. Se você seguiu cada tutorial, agora você também tem experiência prática com como controlar a exibição de itens individuais nesses controles. Você também tem experiência em como notificar sua lógica de negócios de que o usuário selecionou um item. Finalmente, agora você sabe como refletir automaticamente as alterações na sua coleção (como adicionar ou remover itens) na interface do usuário.

Essa separação entre interface do usuário e lógica é crucial ao desenvolver até mesmo aplicativos moderadamente complexos. Ele permite que sua lógica de negócios (código) pense em termos de objetos de negócios. Por exemplo, não tivemos que considerar o controle em nossa lógica quando solicitamos o TextBox nome do usuário. Tivemos apenas que lidar com o String objeto do texto que eles inseriram. Nossa lista de cores favoritas estava armazenando objetos reais ColorDescriptor em vez de objetos relacionados à interface do usuário, como ListItem. Mas, graças à vinculação de dados, a interface do usuário ainda pode exibir esses itens da maneira que o designer escolher: em um ListBox, um , um layout semelhante a uma grade com cartões ou até mesmo um ComboBoxcarrossel. Sua lógica de negócios não precisará ser alterada para nenhuma dessas escolhas.

A separação adequada da lógica e da interface do usuário também permite que você escreva testes de unidade automatizados separados para sua lógica de negócios. Esses testes podem ser executados sem iniciar o aplicativo (por exemplo, com o Visual Studio Unit Testing). Os testes dependem do mecanismo de vinculação de dados testado e comprovado para transferir dados entre a interface do usuário e seu código de lógica de negócios.

Simplifique a codificação de classes

Finalmente, neste módulo, você viu como pode aproveitar uma classe base para simplificar a codificação de classes amigáveis à vinculação de dados. Este foi o primeiro passo na aplicação das melhores práticas do setor da arquitetura Model-View-ViewModel (MVVM).

O modelo, em nossa pequena amostra, é bem exemplificado pela ColorDescriptor classe. Os dados armazenados sobre um objeto ou conceito do mundo real são, neste caso, cores.

A exibição é nosso código XAML, MainPage.xaml (UWP) / MainWindow.xaml (WPF) e ColorList.xaml, juntamente com seus arquivos code-behind, MainPage.xaml.cs (UWP) / MainWindow.xaml.cs (WPF) e ColorList.xaml.cs.

O viewmodel é a lógica de negócios real que conduz a interface do usuário, tomando decisões (por exemplo, se um botão deve ser habilitado). Em nosso exemplo de UWP, as MainPageLogic classes e ColorListLogic são essencialmente classes viewmodel. No exemplo do WPF, o , o MainWindowDataContextClocke as ColorListDataContext classes são os viewmodels.

MVVM é o padrão de arquitetura mais usado para estruturas de interface do usuário que suportam vinculação de dados. Há muitos kits de ferramentas e estruturas MVVM disponíveis que podem impulsionar seu desenvolvimento em UWP e WPF, ou até mesmo SDK de aplicativos Windows e MAUI .NET. Alguns dos mais populares são:

Antes de ir...

Agora que você já está configurado para o desenvolvimento do Windows, incentivamos você a continuar aprendendo. Confira o próximo módulo para saber mais sobre como conectar seu aplicativo à nuvem. Mas primeiro, verifique seus conhecimentos com o seguinte questionário.

Verificação de conhecimento

1.

O que é a vinculação de dados?

2.

Qual interface você precisa implementar para refletir a alteração de uma propriedade C# na interface do usuário?

3.

O que você precisa fazer para transferir o texto inserido em uma caixa de texto para uma propriedade de cadeia de caracteres C# por meio da vinculação de dados?

4.

O que você precisa fazer para exibir os objetos armazenados em uma coleção IEnumerable em uma caixa de listagem?

5.

Você está adicionando itens à sua coleção enquanto o aplicativo está em execução. Como fazer com que a interface do usuário reflita essas alterações?