Fontes de dados com suporte do Windows Forms
Tradicionalmente, a associação de dados tem sido usada em aplicativos para aproveitar os dados armazenados em bancos de dados. Com a associação de dados do Windows Forms, você pode acessar dados de bancos de dados, bem como dados em outras estruturas, como matrizes e coleções, desde que determinados requisitos mínimos tenham sido atendidos.
Estruturas às quais associar
No Windows Forms, você pode associar a uma ampla variedade de estruturas, desde objetos simples (associação simples) até listas complexas, como tabelas de dados ADO.NET (associação complexa). Para associação simples, o Windows Forms dá suporte à associação às propriedades públicas no objeto simples. A associação baseada em lista do Windows Forms geralmente requer que o objeto dê suporte à interface IList ou à interface IListSource. Além disso, se você estiver associando por meio de um componente BindingSource, poderá associar a um objeto que dê suporte à interface IEnumerable. Para obter mais informações sobre interfaces relacionadas à associação de dados, consulte Interfaces relacionadas à associação de dados.
A lista a seguir mostra as estruturas às quais você pode associar nos Windows Forms.
BindingSource
Um BindingSource é a fonte de dados mais comum do Windows Forms e atua um proxy entre uma fonte de dados e controles do Windows Forms. O padrão geral de uso BindingSource é associar seus controles à BindingSource e associar o BindingSource à fonte de dados (por exemplo, uma tabela de dados ADO.NET ou um objeto de negócios). O BindingSource fornece serviços que habilitam e melhoram o nível de suporte à associação de dados. Por exemplo, controles baseados na lista do Windows Forms, como o DataGridView e ComboBox, não dão suporte diretamente à associação a fontes de dados IEnumerable, no entanto, você pode habilitar esse cenário associando-se por meio de um BindingSource. Nesse caso, o BindingSource converterá a fonte de dados em um IList.
Objetos simples
O Windows Forms dá suporte a propriedades de controle de associação de dados a propriedades públicas na instância de um objeto usando o tipo Binding. O Windows Forms também oferece suporte a controles que utilizam listas para associação, como um ListControl para uma instância de objeto quando um BindingSource é usado.
Matriz ou coleção
Para atuar como uma fonte de dados, uma lista deve implementar a interface IList; um exemplo seria uma matriz que é uma instância da classe Array. Para obter mais informações sobre matrizes, consulte Como criar uma matriz de objetos (Visual Basic).
Em geral, você deve usar BindingList<T> ao criar listas de objetos para associação de dados. BindingList<T> é uma versão genérica da interface IBindingList. A interface IBindingList estende a interface IList adicionando propriedades, métodos e eventos necessários para associação de dados bidirecional.
IEnumerable
Os controles do Windows Forms podem ser associados a fontes de dados que só dão suporte à interface IEnumerable se estiverem associadas por meio de um componente BindingSource.
ADO.NET objetos de dados
ADO.NET fornece várias estruturas de dados adequadas para associação. Cada um varia em sua sofisticação e complexidade.
DataColumn. Um DataColumn é o bloco de construção essencial de um DataTable, em que várias colunas compõem uma tabela. Cada DataColumn tem uma propriedade DataType que determina o tipo de dados que a coluna armazena (por exemplo, a marca de um automóvel em uma tabela que descreve carros). Você pode associar de maneira simples um controle (como a propriedade Text de um controle TextBox) a uma coluna dentro de uma tabela de dados.
DataTable. Um DataTable é a representação de uma tabela, com linhas e colunas, em ADO.NET. Uma tabela de dados contém duas coleções: DataColumn, representando as colunas de dados em uma determinada tabela (que, em última análise, determina os tipos de dados que podem ser inseridos nessa tabela) e DataRow, representando as linhas de dados em uma determinada tabela. Você pode associar um controle complexo às informações contidas em uma tabela de dados (como associar o controle DataGridView a uma tabela de dados). No entanto, quando você associa a um DataTable, você está na realidade associando à exibição padrão da tabela.
DataView. Um DataView é uma exibição personalizada de uma única tabela de dados que pode ser filtrada ou classificada. Uma exibição de dados é o "instantâneo" dos dados usado por controles associados de maneira complexa. Você pode associar de maneira simples ou complexa aos dados em uma exibição de dados, mas lembre-se de que você está associando a uma "imagem" fixa dos dados em vez de uma fonte de dados limpa e atualizada.
DataSet. Um DataSet é uma coleção de tabelas, relações e restrições dos dados em um banco de dados. Você pode associar de maneira simples ou complexa aos dados em um conjunto de dados, mas esteja ciente de que está associando ao DataViewManager padrão para o DataSet (veja o próximo ponto de marcador).
DataViewManager. Um DataViewManager é uma exibição personalizada de toda a DataSet, análoga a um DataView, mas com relações incluídas. Com uma coleção de DataViewSettings, você pode definir filtros padrão e opções de classificação para quaisquer exibições que o DataViewManager tenha para uma determinada tabela.
Consulte também
.NET Desktop feedback