Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Diferença da tag Label em XAML

Olá galera, tudo bem?

Procurei na Internet mas não achei nada respondendo minha dúvida bem específica, então venho aqui pedir explicações.

Qual é a diferença em escrever no XAML de:

<Label Text="Qualquer coisa" />

para:

<Label>Qualquer coisa</Label>

se as duas imprimem na tela a mesma coisa?

Eu sei que deve ter diferenças para o desenvolvimento, mas quais? Estou na dúvida!

Desde já, agradeço!

2 respostas
solução

Olá, Eduardo!

Com Xamarin podem existir maneiras diferentes de se atingir o mesmo objetivo.

Por exemplo, podemos usar a sintaxe de atributo para definir o texto do Label:

<Label Text="Qualquer coisa" />

O mesmo pode ser feito utilizando a sintaxe de elemento de propriedade:

<Label>
   <Label.Text>
      Qualquer coisa
   </Label.Text>
</Label>

Como o Text é a propriedade default do Label, a sintaxe de elemento de propriedade pode ser reescrita resumidamente como:

<Label>
   Qualquer coisa
</Label>

Agora, existe diferença prática entre essas abordagens? Sim, existe. Na sintaxe de atributo, podemos utilizar um binding na propriedade Text. Por exemplo, imagine uma propriedade Login retornando o valor "Eduardo":

<Label Text="{Binding Login}"></Label>

O label acima exibiria o valor: "Eduardo".

Já na sintaxe de elemento de propriedade o valor utilizado é sempre literal, então o binding não funciona. Se fizermos:

<Label>
   {Binding Login}
</Label>

O label acima exibiria o valor: "{Binding Login}".

Ou seja, a sintaxe de elemento de propriedade é mais limitada que a sintaxe de atributo.

Boa sorte e bons estudos!

Show de bola, deu pra entender a diferença! Muito obrigado!