Orígenes de datos compatibles con formularios Windows Forms

El enlace de datos se ha usado tradicionalmente en las aplicaciones para aprovechar los datos almacenados en las bases de datos. Con el enlace de datos de Windows Forms, puede acceder a los datos de las bases de datos, así como a los datos de otras estructuras (como matrices y colecciones), siempre y cuando se cumplan ciertos requisitos mínimos.

Estructuras a las que se puede enlazar

En Windows Forms se puede enlazar a una amplia variedad de estructuras, desde objetos simples (enlace simple) a listas complejas, como las tablas de datos ADO.NET (enlace complejo). En un enlace simple, Windows Forms admite el enlace a las propiedades públicas en el objeto simple. El enlace basado en listas de Windows Forms suele requerir que el objeto admita las interfaces IList o IListSource. Además, si va a enlazar a través de un componente BindingSource, puede enlazar a un objeto que admita la interfaz IEnumerable. Para obtener más información sobre las interfaces relacionadas con el enlace de datos, vea Interfaces relacionadas con el enlace de datos.

En la lista siguiente se muestran las estructuras a las que se puede enlazar en Windows Forms.

BindingSource
BindingSource es el origen de datos de Windows Forms más común, y actúa como proxy entre un origen de datos y los controles de Windows Forms. El patrón de uso general de BindingSource consiste en enlazar los controles a BindingSource y enlazar BindingSource al origen de datos (por ejemplo, una tabla de datos ADO.NET o un objeto de negocios). BindingSource proporciona servicios que habilitan y mejoran el nivel de compatibilidad con el enlace de datos. Por ejemplo, los controles de Windows Forms basados en listas como DataGridView y ComboBox no admiten directamente el enlace a orígenes de datos IEnumerable, pero este escenario puede ser factible si se enlazan a través de BindingSource. En tal caso, BindingSource convertirá el origen de datos en IList.

Objetos simples
Windows Forms admite el enlace de datos de propiedades de control a propiedades públicas en la instancia de un objeto mediante el tipo Binding. Windows Forms también admite el enlace de controles basados en listas, como, por ejemplo, un objeto ListControl, a una instancia de objeto si se usa BindingSource.

Matrices o colecciones
Para actuar como origen de datos, una lista debe implementar la interfaz IList; un ejemplo de esto sería una matriz que sea una instancia de la clase Array. Para obtener más información sobre las matrices, vea Procedimiento para crear una matriz de objetos (Visual Basic).

En general, debe usar BindingList<T> al crear listas de objetos para el enlace de datos. BindingList<T> es una versión genérica de la interfaz IBindingList. La interfaz IBindingList amplía la interfaz IList al agregar las propiedades, métodos y eventos necesarios para el enlace de datos bidireccional.

IEnumerable
Los controles de Windows Forms se pueden enlazar a orígenes de datos que solo admiten la interfaz IEnumerable si se enlazan a través de un componente BindingSource.

Objetos de datos ADO.NET
ADO.NET proporciona una serie de estructuras de datos adecuadas a las que enlazar. Cada una difiere en cuanto a elaboración y complejidad.

  • DataColumn. DataColumn es el bloque de creación esencial de un objeto DataTable donde una serie de columnas componen una tabla. Cada DataColumn tiene una propiedad DataType que determina el tipo de datos que la columna contiene (por ejemplo, la marca de un automóvil en una tabla de automóviles). Puede enlazar un control mediante enlace simple (como la propiedad Text de un control TextBox) a una columna dentro de una tabla de datos.

  • DataTable. DataTable es la representación de una tabla, con filas y columnas, en ADO.NET. Una tabla de datos contiene dos colecciones: DataColumn, que representa las columnas de datos de una tabla (que, en última instancia, determinan los tipos de datos que se pueden introducir en esa tabla), y DataRow, que representa las filas de datos de una tabla. Puede enlazar un control mediante enlace complejo a la información contenida en una tabla de datos (por ejemplo, enlazar el control DataGridView a una tabla de datos). Sin embargo, cuando se enlaza a DataTable, en realidad se está enlazado a la vista predeterminada de la tabla.

  • DataView. DataView es una vista personalizada de una sola tabla de datos que se puede filtrar u ordenar. Una vista de datos es la "instantánea" de datos que utilizan los controles enlazados mediante enlace complejo. Dentro de una vista de datos se puede enlazar a datos mediante enlace simple o enlace complejo, pero tenga en cuenta que estará enlazando a una "imagen" fija de los datos, y no a un origen de datos en condiciones y actualizado.

  • DataSet. DataSet es una colección de tablas, relaciones y restricciones de los datos de una base de datos. Se puede enlazar a los datos de un conjunto de datos mediante un enlace simple o complejo, pero tenga en cuenta que estará enlazando al elemento DataViewManager predeterminado de DataSet (vea el siguiente punto).

  • DataViewManager. DataViewManager es una vista personalizada del DataSet completo, similar a DataView, pero con relaciones incluidas. Con una colección DataViewSettings, se pueden establecer opciones de ordenación y filtros predeterminados de cualquier vista que DataViewManager tenga para una tabla determinada.

Vea también