Xamarin.Forms Noções básicas sobre XAML

A linguagem XAML (eXtensible Application Markup Language) é uma linguagem baseada em XML criada pela Microsoft como uma alternativa ao código de programação para instanciar e inicializar objetos e organizar esses objetos em hierarquias pai-filho. O XAML foi adaptado a várias tecnologias dentro da estrutura .NET, mas encontrou sua maior utilidade na definição do layout das interfaces do usuário no Windows Presentation Foundation (WPF), no Silverlight, no Tempo de Execução do Windows e na Plataforma Universal do Windows (UWP).

O XAML permite que os desenvolvedores definam interfaces de usuário em Xamarin.Forms aplicativos usando marcação em vez de código. O XAML nunca é necessário em um programa, mas geralmente é mais sucinto e visualmente mais coerente do que o Xamarin.Forms código equivalente e potencialmente utilizável. O XAML é adequado para uso com a popular arquitetura de aplicativo MVVM (Model-View-ViewModel): o XAML define o View vinculado ao código ViewModel por meio de associações de dados baseadas em XAML.

Em um arquivo XAML, o Xamarin.Forms desenvolvedor pode definir interfaces de usuário usando todos os Xamarin.Forms modos de exibição, layouts e páginas, bem como classes personalizadas. O arquivo XAML pode ser compilado ou incorporado no executável. De qualquer forma, as informações XAML são analisadas em tempo de compilação para localizar objetos nomeados e novamente em tempo de execução para instanciar e inicializar objetos e estabelecer vínculos entre esses objetos e o código de programação.

O XAML tem várias vantagens em relação ao código equivalente:

  • O XAML geralmente é mais sucinto e legível do que o código equivalente.
  • A hierarquia pai-filho inerente ao XML permite que o XAML imite com maior clareza visual a hierarquia pai-filho dos objetos da interface do usuário.
  • O XAML pode ser facilmente escrito à mão por programadores, mas também se presta a ser ferramental e gerado por ferramentas de design visual.

Há também desvantagens, principalmente relacionadas a limitações que são intrínsecas às linguagens de marcação:

  • XAML não pode conter código. Todos os manipuladores de eventos devem ser definidos em um arquivo de código.
  • XAML não pode conter loops para processamento repetitivo. (No entanto, vários Xamarin.Forms objetos visuais — mais notavelmente ListView — podem gerar vários filhos com base nos objetos de sua ItemsSource coleção.)
  • XAML não pode conter processamento condicional (No entanto, uma vinculação de dados pode fazer referência a um conversor de vinculação baseado em código que efetivamente permite algum processamento condicional.)
  • XAML geralmente não pode instanciar classes que não definem um construtor sem parâmetros. (No entanto, às vezes há uma maneira de contornar essa restrição.)
  • XAML geralmente não pode chamar métodos. (Novamente, essa restrição às vezes pode ser superada.)

Ainda não há um designer visual para gerar XAML em Xamarin.Forms aplicativos. Todos os XAML devem ser escritos à mão, mas você pode usar o XAML Hot Reload no Visual Studio 2019 ou no Visual Studio para Mac para exibir seus designs de tela à medida que os edita. Mesmo desenvolvedores com muita experiência em XAML sabem que a experimentação é gratificante.

XAML é basicamente XML, mas XAML tem alguns recursos de sintaxe exclusivos. O mais importante é:

  • Elementos de propriedade
  • Propriedades anexadas
  • Extensões de marcação

Esses recursos não são extensões XML. XAML é XML totalmente legal. Mas esses recursos de sintaxe XAML usam XML de maneiras exclusivas. Eles são discutidos em detalhes nos artigos abaixo, que concluem com uma introdução ao uso de XAML para implementar o MVVM.

Requisitos

Este artigo pressupõe uma familiaridade de trabalho com Xamarin.Formso . Este artigo também pressupõe alguma familiaridade com XML, incluindo a compreensão do uso de declarações de namespace XML e os termos elemento, tag e atributo.

Quando estiver familiarizado com Xamarin.Forms o XML, comece a ler a Parte 1. Introdução ao XAML.

Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.