locked
Gerador de formulário RRS feed

  • Pergunta

  • Ola Pessoal,

     

    Estou tentando criar um Gerador de Formulário.

    A idéia é o usuário poder criar quantos campos ele desejar, inclusive definindo se o campo é texto,  numérico, valor máximo, mínimo, etç.

     

    Para a criação dos campos não vejo  problemas, .... porem como fazer o Binding destes campos ?? E o DataContext ?? Class ???

     

    Se algum tiver alguma idéia de qual é a o “Caminho das Pedras” para esta situação agradeço.


    Rogério
    quarta-feira, 20 de outubro de 2010 11:08

Todas as Respostas

  • Rogério,

    Implementei algo similar em ASP.Net. Minha recomendação é você criar uma estrutura de classes que contenha a configuração dos campos, por exemplo:

    Formulario
      Nome
      Campos
        Campo (classe base)
          SomenteLeitura
          Obrigatorio
          Largura
        CampoString : Campo
          TamanhoMaximo
          Formato
        CampoInt: Campo
          TamanhoMaximo
          Digitos

    E assim por diante... O bacana é que você pode, em vez de guardar esta estrutura no banco de dados (o que é trabalhoso), converter os objetos para XML via XmlSerializer ou DataContractSerializer, e armazená-lo em um arquivo no disco. Dependendo do volume vale a pena.

    Depois disso, é só dar o bind diretamente no controle e suas propriedades.


    Bruno Rodrigues www.devdotnet.com.br
    sábado, 23 de outubro de 2010 08:30
  • Ola Bruno,

    Entendi sua ideia, porem só estou com uma duvida.

    Se você criar varios campos do tipo TextBox para receber valores do tipo String eles estarão ligados (bind) com a uma das Propriedade da classe porem isto não gera conflito no DataContext ? Ou eu teria que criar um novo objeto do tipo da classe para cada campo que estiver presente no formulário ?

    Grato

     


    Rogério
    segunda-feira, 25 de outubro de 2010 09:55
  • Rogério,

    Se entendi bem sua dúvida, não resolveria colocar uma propriedade a mais em cada classe que representa o objeto, com o valor? Por exemplo:

    Formulario
      Nome
      Campos
        Campo (classe base)
          SomenteLeitura
          Obrigatorio
          Largura
        CampoString : Campo
          TamanhoMaximo
          Formato
          Valor

    Assim você poderia dar o bind no controle inteiro, utilizando as propriedades que são relativas ao formato do controle, além da que é relativa ao seu valor.

    Abraço


    Bruno Rodrigues Desenvolvimento .Net
    segunda-feira, 25 de outubro de 2010 15:41
  • Bruno,

    Agora penso ter entendido o que você esta querendo dizer, eu realmente me confundi no primeiro momento.

    Vou tentar codificar isto.

    Muito obrigado pela dica.

    Abraços

     

     


    Rogério
    segunda-feira, 25 de outubro de 2010 15:50
  • Beleza, Rogério! Qualquer dúvida, me diga.

    Abraços


    Bruno Rodrigues Desenvolvimento .Net
    segunda-feira, 25 de outubro de 2010 20:27