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

Baixar exemplo Baixar o exemplo

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

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

Em um arquivo XAML, o desenvolvedor pode definir interfaces do Xamarin.Forms usuário usando todas as Xamarin.Forms exibições, layouts e páginas, bem como classes personalizadas. O arquivo XAML pode ser compilado ou inserido no executável. De qualquer forma, as informações XAML são analisadas no momento da compilação para localizar objetos nomeados e novamente em runtime para instanciar e inicializar objetos e estabelecer links entre esses objetos e 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 imita com maior clareza visual a hierarquia pai-filho de objetos de interface do usuário.
  • O XAML pode ser facilmente escrito manualmente por programadores, mas também se presta a ser toolable e gerado por ferramentas de design visual.

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

  • O XAML não pode conter código. Todos os manipuladores de eventos devem ser definidos em um arquivo de código.
  • O 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 em sua ItemsSource coleção.)
  • O XAML não pode conter processamento condicional (no entanto, uma associação de dados pode referenciar um conversor de associação baseado em código que efetivamente permite algum processamento condicional.)
  • O 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.)
  • 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 Recarga Dinâmica XAML no Visual Studio 2019 ou Visual Studio para Mac para exibir seus designs de tela à medida que os edita. Mesmo os 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 é totalmente XML legal. Mas esses recursos de sintaxe XAML usam XML de maneiras exclusivas. Eles são discutidos detalhadamente nos artigos abaixo, que concluem com uma introdução ao uso de XAML para implementar o MVVM.

Requisitos

Este artigo pressupõe uma familiaridade funcional com Xamarin.Forms. 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, marca e atributo.

Quando você estiver familiarizado com e XMLXamarin.Forms, comece a ler a Parte 1. Introdução com XAML.

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