Modos de presentación de datos en el control DataGridView de formularios Windows Forms

El control DataGridView puede mostrar datos en tres modos distintos: enlazado, sin enlazar y virtual. Elija el modo más adecuado en función de sus requisitos.

Unbound

El modo sin enlazar es adecuado para mostrar cantidades relativamente pequeñas de datos que se administran mediante programación. No se adjunta el control DataGridView directamente a un origen de datos como en el modo enlazado. En su lugar, debe rellenar el control personalmente, y suele hacerse con el método DataGridViewRowCollection.Add.

El modo sin enlazar puede resultar especialmente útil para los datos estáticos o de solo lectura, o cuando desea proporcionar su propio código que interactúe con un almacén de datos externo. Sin embargo, si desea que los usuarios interactúen con un origen de datos externo, normalmente usará el modo enlazado.

Para obtener un ejemplo que usa un control DataGridView sin enlazar de solo lectura, vea Tutorial: Crear un control DataGridView sin enlazar en formularios Windows Forms.

Bound

El modo enlazado es adecuado para administrar datos mediante la interacción automática con el almacén de datos. Puede adjuntar el control DataGridView directamente a su origen de datos estableciendo la propiedad DataSource. Cuando el control está enlazado a datos, las filas de datos se insertan y extraen sin necesidad de una administración explícita por su parte. Cuando la propiedad AutoGenerateColumns es true, cada columna del origen de datos hará que se cree una columna correspondiente en el control. Si prefiere crear sus propias columnas, puede establecer esta propiedad en false y usar la propiedad DataPropertyName para enlazar cada columna al configurarla. Esto resulta útil cuando desea usar un tipo de columna distinto de los tipos generados de forma predeterminada. Para más información, consulte Tipos de columnas en el control DataGridView de formularios Windows Forms.

Para obtener un ejemplo que usa un control DataGridView enlazado, vea Tutorial: Validar datos en el control DataGridView de formularios Windows Forms.

También puede agregar columnas sin enlazar a un control DataGridView en modo enlazado. Esto resulta útil cuando desea mostrar una columna de botones o vínculos que permiten a los usuarios realizar acciones en filas específicas. También resulta útil mostrar columnas con valores calculados a partir de columnas enlazadas. Puede rellenar los valores de celda de las columnas calculadas en un controlador para el evento CellFormatting. Sin embargo, si usa DataSet o DataTable como origen de datos, es posible que desee usar la propiedad DataColumn.Expression para crear una columna calculada en su lugar. En este caso, el control DataGridView tratará la columna calculada igual que cualquier otra columna del origen de datos.

No se admite la ordenación por columnas sin enlazar en modo enlazado. Si crea una columna sin enlazar en modo enlazado que contiene valores editables por el usuario, debe implementar el modo virtual para mantener estos valores cuando el control está ordenado por una columna enlazada.

Las máquinas

Con el modo virtual, puede implementar sus propias operaciones de administración de datos. Esto es necesario para mantener los valores de las columnas sin enlazar en modo enlazado cuando el control se ordena por columnas enlazadas. Sin embargo, el uso principal del modo virtual es optimizar el rendimiento al interactuar con grandes cantidades de datos.

Adjunta el control DataGridView a una memoria caché que administra, y el código controla cuando se insertan y extraen filas de datos. Para mantener la superficie de memoria con un tamaño reducido, la memoria caché debe ser similar en tamaño al número de filas que se muestran actualmente. Cuando el usuario desplaza nuevas filas a la vista, el código solicita nuevos datos de la memoria caché y, opcionalmente, vacía los datos antiguos de la memoria.

Al implementar el modo virtual, deberá realizar un seguimiento de cuándo se necesita una nueva fila en el modelo de datos y cuándo revertir la adición de la nueva fila. La implementación exacta de esta funcionalidad depende de la implementación del modelo de datos y de su semántica de transacciones; si el ámbito de confirmación está en el nivel de celda o de fila.

Para obtener más información sobre el modo virtual, vea Modo virtual en el control DataGridView de Windows Forms. Para ver un ejemplo que muestra cómo usar eventos de modo virtual, vea Tutorial: Implementación del modo virtual en el control DataGridView de Windows Forms.

Consulte también