Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Arquitetura WPF: o DataBinding - Parte 01

Recommended Posts

O mecanismo de DataBinding não é novo e já existe há algum tempo. Mas diferente do mecanismo de DataBinding tradicional, dentro da arquitetura WPF, o DataBinding traz alguns recursos diferenciados que o tornam um mecanismo extremamente poderoso, eficaz e que tem papel muito importante na Arquitetura WPF além da construção de aplicativos com essa tecnologia. Neste primeiro artigo, vamos apresentar em detalhes como tirar proveito desse recurso extremamente poderoso.

 

O DataBinding no WPF, entre muitas outras coisas, dispõe de:

 

  • Propriedades que têm suporte nativo ao Binding;
  • Uma representação flexível de dados para o usuário;
  • Permite classificar e filtrar;
  • Permite também uma clara separação da lógica de negócios da interface com o usuário.

O DataBinding

A definição de DataBinding é simples: ?é  o processo de conectar o aplicativo de interface com o usuário a lógica de negócios?. Embora seja simples a definição, realizar essa conexão envolve tarefas como validação, conexão com a fonte de dados e apresentação correta e organizada das informações para uma melhor visualização.

 

Uma grande vantagem do binding dentro do WPF é que ele traz uma vasta gama de propriedades e fontes de dados que podem ser utilizadas nas aplicações. Vamos começar a entender melhor como esse mecanismo funciona. Observe a figura abaixo:

 

34840.png

 

A figura acima ilustra o processo de DataBinding. Veja como é simples, porém muito poderoso o mecanismo de Binding. Vamos começar a identificar as peças dentro desse processo.

 

Sempre existirá um objeto fonte(Source) e um objeto alvo(Target). Independentemente do alvo ou da fonte, o mecanismo de Binding sempre seguirá o esquema ilustrado acima.

 

O mecanismo de Binding é composto, além dos objetos de fonte e destino, por mais dois outros elementos que são a propriedade de destino e um caminho para o valor no objeto fonte(Source) para uso, totalizando ao todo quatro elementos. Observe a figura abaixo:

 

34842.png

 

Identificando na figura acima:

 

  1. Objeto utilizado como fonte de dados(Source)
  2. Objeto de alvo(Target).
  3. Propriedade que terá seu valor utilizado pelo objeto de alvo(Target), ou seja, o valor desta propriedade é o Path - ou o caminho em que se encontra o valor a ser utilizado.
  4. Propriedade de destino(Target), ou seja, a propriedade que receberá o valor da propriedade do objeto utilizado como fonte de dados.

Esses quatro elementos são as peças chaves do mecanismo de binding. Os objetos podem até ser alvos e fontes diferentes, mas, de qualquer maneira, eles sempre irão se enquadrar neste mecanismo: Objeto Fonte(Source), Objeto alvo(Target), propriedade fonte e propriedade de destino.

 

 

O DataBinding e a direção do fluxo dos dados

Um dos diferenciais do binding na arquitetura WPF é a maneira como o fluxo de dados trafega entre o alvo(Target) e o Fonte(Source). O fluxo de dados pode ser OneWay, TwoWay e OneWayToSource. Observe a figura abaixo:

 

34843.png

 

O fato de existirem diversas formas de direcionar o fluxo dos dados se deve ao fato de as necessidades que existem de comunicação do usuário e a fonte de dados.

 

Você pode, por exemplo, desejar que o usuário, ao realizar uma atualização, venha propagar a mesma para a fonte de dados, ou o objeto que é a fonte de dados somente atualiza o objeto alvo e não deseja ser notificada se o usuário realiza uma alteração.

 

Enfim, de acordo com a necessidade, você especifica como será a direção do fluxo de dados. Veja a descrição abaixo de cada uma das formas de trafegar o fluxo de dados:

 

  • OneWay: Faz com que a propriedade de origem(Source) atualize automaticamente a propriedade de destino(Target), mas não notifica a propriedade de origem caso haja uma atualização na propriedade de destino.
  • TwoWay: Faz com que tanto a propriedade de origem(Source) ou destino(Target) sejam notificadas caso haja uma alteração em uma ou outra. Este tipo de fluxo de dados é indicado para cenários mais interativos, quando existe uma necessidade de que atualizações sejam refletidas automaticamente - na fonte(Source) ou no destino(Target) - que pode ser, por exemplo, um formulário.
  • OneWayToSource: É o inverso do OneWay, permitindo somente que a propriedade de destino(Target) atualize a propriedade fonte(Source).
  • OneTime:  Embora não ilustrada acima, o OneTime é utilizado quando você deseja inicializar a propriedade de destino, mas sem que qualquer atualização posterior não seja refletida. Podemos dizer que o OneTime é um OneWay mais simples.

Você pode especificar o tipo de fluxo de dados, através da propriedade Mode da classe Binding:

 

<Bnding Mode=OneWay />

O que faz propagar a atualização da fonte

Agora que entendemos como funciona o fluxo dos dados entre a fonte e o destino, precisamos saber o que faz desencadear essa atualização ou essas notificações de mudança.

 

Os fluxos OneWayToSource e TwoWay escutam mudanças na propriedade de destino(Target) e propagam até a fonte de dados(Source), isso é chamado de atualização da fonte.

 

Mas como se dá essa atualização? É simples, a propriedade UpdateSourceTrigger da classe Binding é responsável por especificar como irá ocorrer essa notificação. Observe a figura abaixo:

 

34844.png

 

Se o valor da propriedade estiver como UpdateSourceTrigger for PropertyChanged, a fonte(Source) é atualizada caso haja mudança na propriedade de destino(Target). Se o valor é UpdateSourceTrigger for LostFocus, a fonte é atualizada com o novo valor assim que a propriedade de destino(Target ) perde o foco.

 

Bom, pessoal, neste primeiro artigo de duas etapas que serão publicados sobre o Binding, conseguimos aprender o conceito do Binding, a direção do fluxo de dados, como é desencadeada a atualização da fonte de dados e ainda tivemos uma pequena introdução sobre esta importante funcionalidade do WPF.

 

Fiquem ligados porque ainda temos que aprender sobre como criar o binding, binding com coleções, validação... Enfim, ainda tem muita coisa boa por vir.

 

Abraços e até o próximo artigo!

 

hospedagem2-300x250.jpg

 

http://imasters.com.br/artigo/20244/dotnet/arquitetura-wpf-o-databinding-parte-01

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.