Ocultar una columna de un DataGrid

2508 vistas

Suponemos que el DataGrid está asociado a un DataTable. Tendremos que seguir los siguientes pasos:

  • Crear un DataGridTableStyle para la tabla
  • Añadir el style al DataGrid
  • Personalizar el style para quitar el style de la columna (DataGridColumnStyle) deseada



csharp
  1. // table es un DataTable
  2. dataGrid1.DataSource = table;
  3.  
  4. // creamos una tabla de estilos que nos permita ocultar una o más columnas
  5. DataGridTableStyle tableStyle = new DataGridTableStyle();
  6.  
  7. // IMPORTANTE: tenemos que asociar el nombre de la tabla de estilo
  8. tableStyle.MappingName = table.TableName;
  9.  
  10. // los DataGridColumnStyle se crearán automáticamente al adjuntar el style al DataGrid
  11. // en función de la tabla especificada en tableStyle.MappingName
  12. dataGrid1.TableStyles.Add(tableStyle);
  13.  
  14. // suponemos que la tabla tiene una columna que se llama "hidden"
  15.  
  16. // definimos una referencia hacia la columna a ocultar
  17. DataGridColumnStyle hiddenColStyle = tableStyle.GridColumnStyles["hidden"];
  18.  
  19. // quitando la columna de los styles de columnas, ésta ya no aparecerá
  20. tableStyle.GridColumnStyles.Remove(hiddenColStyle);



Nota: si guardamos una referencia al style de la columna suprimida(hiddenColStyle), podemos mostrarla nuevamente.



csharp
  1. tableStyle.GridColumnStyles.Add(hiddenColStyle);