De que se trata o artigo

Este artigo está fundamentado em apresentar, de forma geral, o recurso de Data Binding do WPF (Windows Presentation Foundation), que lida com a ligação de dados entre extremos, determinados entre fonte e destino. Um exemplo clássico é a representação dos itens de uma coleção de dados em um controle visual, estabelecendo um vínculo entre eles de tal forma a manter os dados sincronizados em tela, conforme as mudanças ocorrem na coleção.

Em que situação o tema é útil

Seja qual for o segmento da aplicação que está se desenvolvendo com WPF, em dado momento será necessário o uso do recurso de Data Binding. Em uma situação do mundo real, tomando como base a necessidade de se apresentar visualmente em um controle ListBox o conjunto de dados contidos em um arquivo XML, a utilização de Data Binding torna este processo totalmente dinâmico. Em outras palavras, não se faz necessária uma intervenção manual, por conta da iteração dos itens da fonte (arquivo XML) e a adição um a um ao destino (ListBox).

Data Binding no WPF

O maçante provimento de informações (artigos, vídeos, blogs, sites e textos avulsos) sobre o desenvolvimento com Delphi Prism fez com que a comunidade voltasse suas atenções também para este novo foco. Sendo assim, diante do mar de novas possibilidades proporcionadas pelo .NET Framework, o desenvolvimento de aplicações utilizando o Windows Presentation Foundation (WPF) se torna uma opção viável, surgindo como uma alternativa às já consagradas aplicações VCL Forms do Delphi tradicional. Diante disso, é fácil presumir que a nova forma de desenvolvimento (como agilidade e recursos disponíveis) muito provavelmente será comparada à forma tradicional à qual se está acostumada a trabalhar. Assim sendo, vários quesitos serão desejados, dentre eles a possibilidade de ligação de dados. Enquanto no Delphi podemos ter campos de tabelas de banco de dados vinculados a controles visuais (DBEdit, DBGrid etc.), de forma semelhante podemos ter no WPF os atributos das classes de negócio ligados aos elementos da interface, utilizando Data Binding, como será visto no decorrer do artigo.

No cenário atual, o WPF se estabeleceu como a principal opção para desenvolvimento Desktop na plataforma .NET, com o foco voltado para aplicações de interface rica. Com o uso do Delphi Prism, ganha-se mais esta opção no desenvolvimento Win32, em vista das já consagradas aplicações VCL Forms, tradicionais do Delphi. Dessa forma, o uso de Data Binding torna-se imprescindível para que se ganhe a agilidade necessária para, por exemplo, a vinculação dinâmica entre os atributos de um objeto de negócio aos elementos da interface.

Dentre seus inúmeros recursos, o Windows Presentation Foundation apresenta uma forma simplificada, mas não menos consistente no que diz respeito à interação e apresentação de dados em aplicações. Isso quer dizer que seus elementos podem estar ligados a fontes de dados distintas, mais precisamente a qualquer objeto .NET. Como exemplo, podemos citar um simples arquivo XML, uma tabela de um banco de dados, um serviço web, um objeto de negócio ou ainda um próprio elemento WPF. Este processo é denominado Data Binding, que numa tradução livre pode ser interpretado como ligação de dados.

Na prática, este termo representa basicamente a conexão estabelecida entre a interface visual (UI) da aplicação e a lógica de negócios. Para que esta associação se dê de maneira ideal, são necessárias algumas configurações estipuladas pelo WPF de forma a tornar o processo de notificação adequado, para que quando os dados da fonte sofram algum tipo de mudança, os elementos vinculados a ele consigam refletir estas alterações automaticamente. Num caso oposto, as informações editadas num elemento da UI, devem ser refletidas na fonte.

Em suma, no WPF o Data Binding permite definir, através de uma simples declaração, como os dados pertinentes à aplicação irão interagir com os diversos elementos e controles presentes em sua interface. Nesta simples definição, o termo “declaração” é usado em vista das duas formas possíveis de se obter uma ligação de dados: declarativa e imperativa. Na abordagem imperativa, se faz necessário o uso de comando(s) que deverão ser executados para que se estabeleça um vínculo de dados, enquanto que na forma declarativa é apenas descrita a relação que a fonte de dados terá com seu destino (como, por exemplo, um elemento da UI).

No campo prático, imagine o cenário onde seja necessário mostrar os itens de uma coleção em um controle adequado, com um ListBox. Utilizando a forma imperativa, teríamos código para diversas etapas do processo, como para a recuperação do conjunto de dados necessários (que são os próprios itens da coleção), para a iteração destes itens a por fim outro código para o preenchimento do controle ListBox. Ao mesmo tempo, utilizando o recurso de Data Binding do WPF, uma simples declaração de código, seja procedural (Oxygene) ou de marcação (XAML) bastaria para se estabelecer toda a relação entre coleção e controle.

...
Quer ler esse conteúdo completo? Tenha acesso completo