protected virtual void DefinirColumnasDelGrid()
        {
            Mnt.Datos.AnadirColumna(new ColumnaDelGrid <TElemento> {
                Propiedad = "chksel", Titulo = " ", PorAnchoMnt = 4, PorAnchoSel = 10, Tipo = typeof(bool)
            });
            var propiedades = typeof(TElemento).GetProperties();

            foreach (var p in propiedades)
            {
                var columna = new ColumnaDelGrid <TElemento> {
                    Propiedad = p.Name, Tipo = p.PropertyType
                };
                IUPropiedadAttribute atributos = ElementoDto.ObtenerAtributos(p);

                if (atributos != null)
                {
                    columna.Visible       = atributos.EsVisible(enumModoDeTrabajo.Mantenimiento);
                    columna.Titulo        = atributos.EtiquetaGrid;
                    columna.ConOrdenacion = atributos.Ordenar;
                    columna.OrdenarPor    = atributos.OrdenarPor;
                    columna.Alineada      = atributos.Alineada == Aliniacion.no_definida ? columna.Tipo.Alineada() : atributos.Alineada;
                    columna.PorAnchoMnt   = atributos.PorAnchoMnt;
                    columna.PorAnchoSel   = atributos.PorAnchoSel == 0 ? atributos.PorAnchoMnt : atributos.PorAnchoSel;
                    Mnt.Datos.InsertarColumna(columna, atributos.PosicionEnGrid);
                }
            }
        }
        internal void InsertarColumna(ColumnaDelGrid <TElemento> columnaDelGrid, int posicion)
        {
            if (posicion >= Mnt.Datos.Columnas.Count || posicion == -1)
            {
                Mnt.Datos.Columnas.Add(columnaDelGrid);
            }
            else
            {
                Mnt.Datos.Columnas.Insert(posicion, columnaDelGrid);
            }

            columnaDelGrid.ZonaDeDatos = this;
        }
 internal void AnadirColumna(ColumnaDelGrid <TElemento> columnaDelGrid)
 {
     Mnt.Datos.Columnas.Add(columnaDelGrid);
     columnaDelGrid.ZonaDeDatos = this;
 }