public ZonaDeMenu(DescriptorDeCreacion <TElemento> creador)
     : base(
         padre: creador,
         id: $"{creador.Id}_{enumTipoControl.ZonaDeMenu.Render()}",
         etiqueta: null,
         propiedad: null,
         ayuda: null,
         posicion: null
         )
 {
     Menu = new Menu <TElemento>(this);
     Tipo = enumTipoControl.ZonaDeMenu;
 }
        public DescriptorDeCrud(ContextoSe contexto, string controlador, string vista, ModoDescriptor modo, string rutaBase, string id = null)
            : base(
                padre: null,
                id: id == null ? $"{NombreCrud}" : id,
                etiqueta: typeof(TElemento).Name.Replace("Dto", ""),
                propiedad: null,
                ayuda: null,
                posicion: null
                )
        {
            var elemento = typeof(TElemento).Name.Replace("Dto", "");

            RutaBase    = rutaBase;
            Tipo        = enumTipoControl.DescriptorDeCrud;
            Mnt         = new DescriptorDeMantenimiento <TElemento>(crud: this, etiqueta: elemento);
            Controlador = controlador.Replace("Controller", "");
            Vista       = $@"{vista}";
            Contexto    = contexto;
            Modo        = modo;

            DefinirColumnasDelGrid();

            Creador    = new DescriptorDeCreacion <TElemento>(crud: this, etiqueta: elemento);
            Editor     = new DescriptorDeEdicion <TElemento>(crud: this, etiqueta: elemento);
            Exportador = new DescriptorDeExportacion <TElemento>(crud: this);
            if (modo == ModoDescriptor.Mantenimiento)
            {
                Mnt.ZonaMenu.AnadirOpcionDeIrACrear();
                Mnt.ZonaMenu.AnadirOpcionDeIrAEditar();
                Mnt.ZonaMenu.AnadirOpcionDeIrAExportar();
                if (GestorDeCorreos.PermiteElEnvioDeCorreo <TElemento>())
                {
                    Cartero = new DescriptorDeEnviarCorreo <TElemento>(crud: this);
                    Mnt.ZonaMenu.AnadirOpcionDeEnviareMail();
                }
                Borrado = new DescriptorDeBorrado <TElemento>(crud: this, etiqueta: elemento);
                Mnt.ZonaMenu.AnadirOpcionDeBorrar();

                DefinirDescriptorDeAuditoria();
            }
        }