O X do Xamarin Forms — Bindable Properties

Thiago Bertuzzi
2 min readMay 12, 2020

Fala Galera,

Tudo beleza?

Há duas semanas atrás eu fiz uma live na Twitch (Se ainda não conhece meu canal lá me segue clicando aqui) falando sobre a criação de Controles e plugins com Xamarin.Forms.

Uma coisa que me perguntaram bastante depois foi sobre as Bindable Properties que eu utilizei na maioria dos controles.

Então hoje vou falar um pouco sobre elas.

Bindable Properties

Em um resumo, uma Bindable Properties é um tipo especial de propriedade, em que o valor da propriedade é vinculado pelo sistema de propriedades Xamarin.Forms. Você pode ler mais sobre Bindable Properties na documentação oficial da MS.

Vamos tomar como base meu controle Xamarin.Forms.MultiSelectListView , basicamente meu Binding que habilita de o ListView é MultiSelect ou não o lv:MultiSelect.Enable=”true” :

Se vocês notarem o ListView por padrão não possui essa propriedade, ela apareceu ao instanciar o namespace xmlns:lv=”clr-namespace:Xamarin.Forms.MultiSelectListView;assembly=Xamarin.Forms.MultiSelectListView” .

Essa propriedade Anexada ao controle e que sera resolvida pelo Xamarin.Forms é uma Bindable Properties.

Certo, mas como ela foi feita ?

Existem diversas coisas que precisamos configurar para gerar Bindable Properties em um controle.

Por exemplo, queremos uma propriedade que pegue um Valor Bool, como do exemplo acima.

1 — Precisamos criar uma propriedade normal para armazenar o conteúdo da nossa Bindable

2 — Criar a BindableProperty. O que você precisa fazer é criar um campo BindableProperty somente leitura ( O famoso readonly)

3 — Por fim você pode implementar um evento propertyChanged para identificar quando teve alguma mudança na propriedade.

As propriedades que utilizei foram :

propertyName — Nome da sua Bindable Property.

returnType — Qual o Retorno dela, no meu caso bool.

declaringType — Quanto o tipo da sua BindablePoperty , é aqui que esta o segredo como eu declarei o tipo ListView ao anexar com o namespace ela passa a fazer parte do ListView..

defaultBindingMode — O binding mode da propriedade ou se ela tem claro.

propertyChanged — O Evento de callBack que sera disparado quando a propriedade for alterada . Basicamente recebe os 3 parametros : Objeto que a propriedade esta anexada, valor novo e o valor anterior.

Como podem ver no exemplo acima o Evento OnHabilitadoChanged é disparado toda vez que a propriedade muda.

Depois basta consumir a propriedade no controle que você anexou a mesma no declaringType.

Caso queira ver este exemplo em ação basta assistir a live gravada disponível no meu canal do Youtube :

Inclusive não deixe de se inscrever tanto na minha Twitch como no meu Youtube para acompanhar esses exemplos sempre que eu estiver ao vivo!

O Exemplo que utilizei para explicar pode ser visto no meu próprio controle Xamarin.Forms.MultiSelectListView

Quer ver outros artigos sobre Xamarin ? Clique aqui.

Espero ter ajudado!

Aquele abraço!

--

--

Thiago Bertuzzi

Microsoft MVP,Gamer, Desenvolvedor e apaixonado por tecnologia!