Enlazar controles de formularios Windows Forms a datos en Visual StudioBind Windows Forms controls to data in Visual Studio

Para mostrar datos a los usuarios de la aplicación, puede enlazarlos a Windows Forms.You can display data to users of your application by binding data to Windows Forms. Para crear estos controles enlazados a datos, puede arrastrar elementos desde la orígenes de datos ventana en el Diseñador de Windows Forms en Visual Studio.To create these data-bound controls, you can drag items from the Data Sources window onto the Windows Forms Designer in Visual Studio.

La operación de arrastrar del origen de datosData Source drag operation

Antes de arrastrar elementos, puede establecer el tipo de control que desea enlazar.Before you drag items, you can set the type of control you want to bind to. Aparecen valores diferentes según si eligió la tabla propiamente dicho o una columna individual.Different values appear depending on whether you choose the table itself, or an individual column. También puede establecer valores personalizados.You can also set custom values. Para una tabla, "Detalles" significa que cada columna se enlaza a un control independiente.For a table, "Details" means that each column is bound to a separate control.

Enlazar el origen de datos a DataGridViewBind data source to DataGridView

Componente BindingSource y controles de BindingNavigatorBindingSource and BindingNavigator Controls

El componente BindingSource sirve para dos propósitos.The BindingSource component serves two purposes. En primer lugar, proporciona una capa de abstracción cuando se enlazan los controles a datos.First, it provides a layer of abstraction when binding the controls to data. Controles del formulario se enlazan a la BindingSource componente en lugar de directamente a un origen de datos.Controls on the form are bound to the BindingSource component instead of directly to a data source. Segundo, puede administrar una colección de objetos.Second, it can manage a collection of objects. Al agregar un tipo a BindingSource, se crea una lista de ese tipo.Adding a type to the BindingSource creates a list of that type.

Para obtener más información acerca del componente BindingSource, vea:For more information about the BindingSource component, see:

El control BindingNavigator de formularios proporciona una interfaz de usuario para navegar por los datos mostrados por una aplicación de Windows.The BindingNavigator control provides a user interface for navigating through data displayed by a Windows application.

Enlazar a datos en un control DataGridViewBind to data in a DataGridView control

Para una DataGridView (control), toda la tabla está enlazada a ese control único.For a DataGridView control, the entire table is bound to that single control. Cuando se arrastra un control DataGridView al formulario, una herramienta de banda para navegar por los registros (BindingNavigator) también aparece.When you drag a DataGridView to the form, a tool strip for navigating records (BindingNavigator) also appears. A conjunto de datos, TableAdapter, BindingSource, y BindingNavigator aparecen en la Bandeja de componentes.A DataSet, TableAdapter, BindingSource, and BindingNavigator appear in the component tray. En la siguiente ilustración, también se agrega un TableAdapterManager porque la tabla Customers tiene una relación con la tabla Orders.In the following illustration, a TableAdapterManager is also added because the Customers table has a relation to the Orders table. Estas variables se declaran en el código generado automáticamente como miembros privados de la clase de formulario.These variables are all declared in the auto-generated code as private members in the form class. El código generado automáticamente para rellenar el control DataGridView se encuentra en el controlador de eventos form_load.The auto-generated code for filling the DataGridView is located in the form_load event handler. El código para guardar los datos para actualizar la base de datos se encuentra en el controlador de eventos de guardar para BindingNavigator.The code for saving the data to update the database is located in the Save event handler for the BindingNavigator. Puede mover o modificar este código según sea necesario.You can move or modify this code as needed.

GridView con BindingNavigatorGridView with BindingNavigator

Puede personalizar el comportamiento de DataGridView y BindingNavigator haciendo clic en la etiqueta inteligente en la esquina superior derecha de cada uno:You can customize the behavior of the DataGridView and the BindingNavigator by clicking on the smart tag in the upper right corner of each:

Etiquetas inteligentes de DataGridView y enlace navegadorDataGridView and Binding Navigator smart tags

Si los controles de la aplicación necesita no está disponible desde dentro de la orígenes de datos ventana, puede agregar controles.If the controls your application needs are not available from within the Data Sources window, you can add controls. Para obtener más información, consulte agregar controles personalizados a la ventana de orígenes de datos.For more information, see Add custom controls to the Data Sources window.

También puede arrastrar elementos desde la orígenes de datos ventana a los controles en un formulario para enlazar el control a los datos.You can also drag items from the Data Sources window onto controls already on a form to bind the control to data. Un control que ya está enlazado a datos tiene sus datos enlaces se restablecen en el elemento arrastrado más recientemente.A control that is already bound to data has its data bindings reset to the item most recently dragged onto it. Para ser destinos de colocación válidos, controles deben ser capaces de mostrar el tipo de datos subyacente del elemento arrastrado en él desde el orígenes de datos ventana.To be valid drop targets, controls must be capable of displaying the underlying data type of the item dragged onto it from the Data Sources window. Por ejemplo, no es válido a arrastrar un elemento que tiene un tipo de datos de DateTime en un CheckBox, porque el CheckBox no es capaz de mostrar una fecha.For example, it's not valid to drag an item that has a data type of DateTime onto a CheckBox, because the CheckBox is not capable of displaying a date.

Enlazar a datos en controles individualesBind to data in individual controls

Al enlazar un origen de datos "Detalles", cada columna del conjunto de datos se enlaza a un control independiente.When you bind a data source to "Details," each column in the dataset is bound to a separate control.

Enlazar el origen de datos para obtener más informaciónBind data source to details

Importante

Tenga en cuenta que en la ilustración anterior, se arrastra desde la propiedad Orders de la tabla Customers, no de la tabla Orders.Note that in the previous illustration, you drag from the Orders property of the Customers table, not from the Orders table. Mediante un enlace a la propiedad Customer.Orders, los comandos de navegación realizados en el control DataGridView se reflejan inmediatamente en los controles de detalles.By binding to the Customer.Orders property, navigation commands made in the DataGridView are reflected immediately in the details controls. Si arrastró desde la tabla Orders, los controles todavía se enlazaría al conjunto de datos, pero no que no se sincronizan con el control DataGridView.If you dragged from the Orders table, the controls would still be bound to the dataset, but not they would not be synchronized with the DataGridView.

La ilustración siguiente muestra el valor predeterminado los controles enlazados a datos que se agregan al formulario después de que se enlaza la propiedad de pedidos en la tabla Customers "Detalles" en el orígenes de datos ventana.The following illustration shows the default data-bound controls that are added to the form after the Orders property in the Customers table is bound to "Details" in the Data Sources window.

Tabla de pedidos enlazada a detallesOrders table bound to details

Tenga en cuenta también que cada control tiene una etiqueta inteligente.Note also that each control has a smart tag. Esta etiqueta permite que las personalizaciones que se aplican a solo ese control.This tag enables customizations that apply to that control only.

Vea tambiénSee also

Enlazar controles a datos en Visual StudioBinding controls to data in Visual Studio
Enlace de datos en formularios Windows Forms (.NET Framework)Data binding in Windows Forms (.NET Framework)