none
List para enum RRS feed

  • Pergunta

  • Como eu faço para converter uma lista de nomes seja por array ou list para enum.

    Estou utilizando uma propertygrid e para listar qualquer valor através de uma combo tem que ser do tipo enum.

     

    Alguém pode me ajudar?


    mefdias
    quarta-feira, 11 de maio de 2011 14:48

Respostas

Todas as Respostas

  • Marcio, veja se algum dos links abaixo pode ajudar.

    http://msdn.microsoft.com/en-us/library/essfb559.aspx

    http://bytes.com/topic/c-sharp/answers/259202-array-string-enum-types

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 11 de maio de 2011 16:45
  • Luiz muito obrigado por ter respondido.

    A verdade é que não entendi muita coisa.

    Vamos ver se eu consigo te explicar o que realmente eu preciso.

    Como eu disse estou usando uma propertygrid que é preenchida assim.

    public class Propriedades
    {

        public Propriedades()
        {
        }

     
        public enum Escolha
        {
            [Description("Sim")]
            sim,
            [Description("Não")]
            nao
        }

        public enum OutrasPropriedades    {
            [Description("Op1")]
            Op1,
            [Description("Op2")]
            Direita,
            [Description("Op3")]
            Centro
        }

    }

    public class propriedades_Valores
    {

            Escolha _habilitado;
            [Description("escolha")]
            [Category("Geral")]
            [TypeConverter(typeof(conversor_propriedade))]
            public Escolha Habilitado
            {
                get { return _habilitado; }
                set { _habilitado = value; }
            }

            OutrasPropriedades    _outraspropriedades;
            [Description("outraspropriedades")]
            [Category("Geral")]
            [TypeConverter(typeof(conversor_propriedade))]
            public OutrasPropriedades   outraspropriedades
            {
                get { return _outraspropriedades; }
                set { _outraspropriedades= value; }
            }

    }

    Atribuo a um propertygrid a classe "propriedades_Valores"

    No meu caso eu preciso incluir uma propriedade com uma lista de valores vinda do banco de dados.
    Neste caso o resultado da pesquisa do banco viraria um array que tem de ser transformada em um enum.

    O problema é que não estou conseguindo criar um enum com esta lista de dados nem incluir esta lista a minha classe que preenche minha propertygrid.

    Se puder me ajudar te agradeço.


    mefdias
    quarta-feira, 11 de maio de 2011 22:10
  • Marcio, infelizmente nunca brinquei como PropertyGrid, para poder lhe ajudar a fundo neste questão, mas pelo que sei você não conseguirá gerar Enuns em tempo de execução, ou seja, cria-la dinamicamente, achei um link que faz comentário sobre dois programas que podem realizar esta criação na compilação, porém toda alteração no banco teria que ser recompilado para gerar a nova enum, o que não é nada prático e nem muito diferente de criar manualmente a enum. Veja o link.

    http://forums.asp.net/t/1201581.aspx/1

    Não posso confirmar se existe outra maneira de fazer o que pretende, espero que alguém no fórum possa ajudar.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quinta-feira, 12 de maio de 2011 05:01
  • Acho que com o exemplo abaixo você vai conseguir, ele faz isso com um array de strings, mas é a mesma coisa, só você ajustar com os dados que vem do seu banco:

    http://www.codeproject.com/KB/vb/using_propertygrid.aspx

    http://www.codeproject.com/KB/cpp/dropdownproperties.aspx

    http://www.codeproject.com/KB/tabs/PropertyGridValidation.aspx

    http://www.codeproject.com/KB/tabs/customizingcollectiondata.aspx


    Bruno Ferreira de Souza
    MSP - Microsoft Student Partner
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro
    • Marcado como Resposta Marcio Dias terça-feira, 19 de julho de 2011 21:24
    quinta-feira, 12 de maio de 2011 12:14