O mecanismo de DataBinding, não é novo já existe há algum tempo, mais diferente do mecanismo de DataBinding tradicional, dentro da arquitetura WPF o DataBinding traz alguns recursos diferenciados e que tornam o mesmo, um mecanismo extremamente poderoso, eficaz e que tem papel muito importante na Arquitetura WPF e na construção de aplicativos com esta tecnologia. Neste primeiro artigo estaremos apresentando em detalhes, como tirar proveito deste recursos extremamente poderoso.
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 esta definição, realizar esta conexão envolve tarefas como validação, conexão com a fonte de dados, apresentação correta e organizada das informações para uma melhor visualização. E 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 este mecanismo funciona. Observe a figura abaixo:
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.
O fato de existir diversas formas de direcionar o fluxo dos dados, se deve ao fato das 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 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 ), mais 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 iterativos, quando existe uma necessidade de que atualizações sejam refletidas automaticamentes, ou seja, na fonte( source ) ou no destino(target) que pode ser, um formulário por exemplo.
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 vc deseja inicializar a propriedade de destino, mais 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 esta atualização ou estas 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), isto é chamado de atualização da fonte. Mais como se dá esta atualização? É simples a propriedade UpdateSourceTrigger da classe Binding, é responsável por específicar como irá ocorrer esta notificação. Observe a figura abaixo: O fato de existir diversas formas de direcionar o fluxo dos dados, se deve ao fato das 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 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 ), mais 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 iterativos, quando existe uma necessidade de que atualizações sejam refletidas automaticamentes, ou seja, na fonte( source ) ou no destino(target) que pode ser, um formulário por exemplo.
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 vc deseja inicializar a propriedade de destino, mais 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 esta atualização ou estas 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), isto é chamado de atualização da fonte. Mais como se dá esta atualização? É simples a propriedade UpdateSourceTrigger da classe Binding, é responsável por específicar como irá ocorrer esta notificação. Observe a figura abaixo:



