Modos de presentación de datos en el control DataGridView de formularios Windows FormsData Display Modes in the Windows Forms DataGridView Control

El DataGridView control puede mostrar datos en tres modos distintos: dependientes, independientes y virtual.The DataGridView control can display data in three distinct modes: bound, unbound, and virtual. Elija el modo más apropiado según sus requisitos.Choose the most suitable mode based on your requirements.

Sin enlazarUnbound

El modo sin enlazar es adecuado para mostrar las cantidades relativamente pequeñas de datos que se administran mediante programación.Unbound mode is suitable for displaying relatively small amounts of data that you manage programmatically. No adjuntar el DataGridView control directamente a un origen de datos como se muestra en el modo de enlace.You do not attach the DataGridView control directly to a data source as in bound mode. En su lugar, debe rellenar el control, normalmente mediante el uso de la DataGridViewRowCollection.Add método.Instead, you must populate the control yourself, typically by using the DataGridViewRowCollection.Add method.

Modo independiente puede ser especialmente útil para datos estáticos de sólo lectura, o cuando desea proporcionar su propio código que interactúa con un almacén de datos externo.Unbound mode can be particularly useful for static, read-only data, or when you want to provide your own code that interacts with an external data store. Cuando desee que los usuarios interactuar con un origen de datos externos, sin embargo, normalmente usará el modo de enlace.When you want your users to interact with an external data source, however, you will typically use bound mode.

Para obtener un ejemplo que usa solo lectura sin enlazar DataGridView, vea Cómo: Crear un Control DataGridView de formularios de Windows independiente.For an example that uses a read-only unbound DataGridView, see How to: Create an Unbound Windows Forms DataGridView Control.

EnlazadoBound

Modo de enlace es adecuado para la administración de datos mediante la interacción con el almacén de datos automática.Bound mode is suitable for managing data using automatic interaction with the data store. Puede adjuntar el DataGridView control directamente a su origen de datos estableciendo el DataSource propiedad.You can attach the DataGridView control directly to its data source by setting the DataSource property. Cuando el control está enlazado a datos, las filas de datos se insertan y se extraen sin necesidad de una administración explícita por parte del usuario.When the control is data bound, data rows are pushed and pulled without the need of explicit management on your part. Cuando el AutoGenerateColumns propiedad es true, cada columna del origen de datos provocará una columna correspondiente que se creará en el control.When the AutoGenerateColumns property is true, each column in your data source will cause a corresponding column to be created in the control. Si prefiere crear sus propias columnas, puede establecer esta propiedad en false y usar el DataPropertyName propiedad para enlazar cada columna cuando se configura.If you prefer to create your own columns, you can set this property to false and use the DataPropertyName property to bind each column when you configure it. Esto es útil cuando desea utilizar un tipo de columna distinto de los tipos que se generan de forma predeterminada.This is useful when you want to use a column type other than the types that are generated by default. Para obtener más información, consulte tipos de columna en el DataGridView Control de Windows Forms.For more information, see Column Types in the Windows Forms DataGridView Control.

Para obtener un ejemplo que usa un límite DataGridView control, vea Tutorial: Validar datos en el Windows Forms DataGridView Control.For an example that uses a bound DataGridView control, see Walkthrough: Validating Data in the Windows Forms DataGridView Control.

También puede agregar columnas sin enlazar a un DataGridView control en modo de enlace.You can also add unbound columns to a DataGridView control in bound mode. Esto es útil cuando desea mostrar una columna de botones o vínculos que los usuarios puedan realizar acciones en filas específicas.This is useful when you want to display a column of buttons or links that enable users to perform actions on specific rows. También es útil mostrar las columnas con valores calculados de las columnas enlazadas.It is also useful to display columns with values calculated from bound columns. Puede rellenar los valores de celda para columnas calculadas en un controlador para el CellFormatting eventos.You can populate the cell values for calculated columns in a handler for the CellFormatting event. Si usas un DataSet o DataTable como origen de datos, sin embargo, puede usar el DataColumn.Expression propiedad para crear una columna calculada en su lugar.If you are using a DataSet or DataTable as the data source, however, you might want to use the DataColumn.Expression property to create a calculated column instead. En este caso, el DataGridView control tratará la columna calculada como cualquier otra columna del origen de datos.In this case, the DataGridView control will treat calculated column just like any other column in the data source.

No se admite la ordenación por columnas sin enlazar en modo de enlace.Sorting by unbound columns in bound mode is not supported. Si crea una columna independiente en el modo de enlace que contiene valores editables de usuario, debe implementar el modo virtual para mantener estos valores cuando el control está ordenado por una columna enlazada.If you create an unbound column in bound mode that contains user-editable values, you must implement virtual mode to maintain these values when the control is sorted by a bound column.

VirtualVirtual

Con el modo virtual, puede implementar sus propias operaciones de administración de datos.With virtual mode, you can implement your own data management operations. Esto es necesario para mantener los valores de columnas sin enlazar en modo de enlace cuando el control está ordenado por las columnas enlazadas.This is necessary to maintain the values of unbound columns in bound mode when the control is sorted by bound columns. Sin embargo, es el uso principal de modo virtual optimizar el rendimiento al interactuar con grandes cantidades de datos.The primary use of virtual mode, however, is to optimize performance when interacting with large amounts of data.

Adjunte el DataGridView control a una memoria caché que administra y los controles de código cuando se insertan y extraen las filas de datos.You attach the DataGridView control to a cache that you manage, and your code controls when data rows are pushed and pulled. Para mantener la superficie de memoria pequeña, la memoria caché debe ser similar en tamaño al número de filas mostradas actualmente.To keep the memory footprint small, the cache should be similar in size to the number of rows currently displayed. Cuando el usuario desplaza las nuevas filas en la vista, el código solicita nuevos datos de la memoria caché y, opcionalmente, vacía los datos antiguos de la memoria.When the user scrolls new rows into view, your code requests new data from the cache and optionally flushes old data from memory.

Al implementar el modo virtual, deberá realizar un seguimiento cuando se necesita una nueva fila en el modelo de datos y si hay que deshacer la adición de la nueva fila.When you are implementing virtual mode, you will need to track when a new row is needed in the data model and when to rollback the addition of the new row. La implementación exacta de esta funcionalidad depende de la implementación del modelo de datos y la semántica de transacción del modelo de datos; Si el ámbito de confirmación está en el nivel de celda o fila.The exact implementation of this functionality will depend on the implementation of the data model and the transaction semantics of the data model; whether commit scope is at the cell or row level.

Para obtener más información sobre el modo virtual, consulte el modo Virtual en el DataGridView Control de Windows Forms.For more information about virtual mode, see Virtual Mode in the Windows Forms DataGridView Control. Para obtener un ejemplo que muestra cómo utilizar el modo virtual eventos, consulte Tutorial: Implementar el modo Virtual en el Windows Forms DataGridView Control.For an example that shows how to use virtual mode events, see Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.

Vea tambiénSee also