Representação da utilização do x:DataType no desenvolvimento. Funcionalidade de detalhes da transação efetuada

Qual motivação no uso do DataType?

Na representação acima, conseguimos visualizar que o uso do x:DataType no xaml de determinada tela, cria uma associação forte entre a interface (View) e a classe de negócio (ViewModel) que preenche os campos da tela. Nesse caso, a view TransacaoEfetuadaView está associada à ViewModel TransacaoEfetuadaViewModel e isso trás alguns benefícios:

  1. Validação de ligação de dados

    1. Na representação acima, vemos que a associação utilizada através do atributo Binding IdentificacaoVenda tem comportamento diferente quando existe o atributo DataType e quando não existe. Quando o atributo existe, é realizado uma garantia que a propriedade usada para ligar a view e viewmodel exista e esteja exatamente com a mesma nomenclatura. Caso ocorra um erro de digitação como no exemplo, a própria IDE vai apresentar uma falha, alertando o desenvolvedor que tem um problema naquele binding. Caso o atributo não exista, essa validação não é feita e o efeito causado é falha nas informações apresentadas em tela (valores errados, em brancos, entre outros).
  2. Suporte no uso do IntelliSense

    1. Dependendo da versão da sua IDE, ao garantir essa associação na construção da tela, o VS preenche automaticamente sugestões de propriedades nos bindings conforme sua digitação (isso sempre que a view model já esteja com os modelos já implementados). Isso garante velocidade e acertividade no desenvolvimento.
  3. Forte tipagem

    1. Ao definir o tipo em nossa classe de negócios, o compilador pode realizar verificações de tipo e garantir que as propriedades e métodos acessados na view sejam válidos.
  4. Desempenho na compilação

   

Então, em resumo, a utilização desse atributo ajuda a manter a integridade do código, fornecendo um mapeamento claro entre a view e a viewmodel associada, o que torna o desenvolvimento e manutenção mais fáceis e menos propensos a erros.


Link do video do repasse:

Documentação de apoio (Microsoft): https://learn.microsoft.com/pt-br/dotnet/maui/fundamentals/data-binding/compiled-bindings?view=net-maui-8.0