none
DataGridView, Tipos de Colunas, como alterar ? RRS feed

  • Pergunta

  •             Suponhamos que temos uma DataGridView chamada dgv em um formulário e uma DataTable chamada dt já preenchida com dados.

     

                Quando eu faço o seguinte:

                           

                            dgv.DataSource = dt

     

               

                Suponhamos que eu obtenha o seguinte resultado

     

     

               

    IDCliente

    Nome

    IDCidade

    1

    Pedro Abs

    2

    2

    Wallace

    4

    ...

     

     



                O meu objetivo é:

               

                Gostaria que a coluna IDCidade fosse representada por uma ComboBox, contendo todas as listas de cidade possíveis (da minha aplicação). Suponhamos que já exista uma DataTable dentro do mesmo dataset que originou os dados contidos na grid e que contenha essa lista de cidades com suas respectivas chaves primárias.

     

                A minha dúvida é a seguinte:

     

                As colunas da DataGridView, por padrão, são do tipo Text, e pelo que eu percebi, uma vez que elas foram criadas setando um datatable a propriedade DataSource da Grid, não é possível alterar o seu tipo (para DataGridViewComboBoxColumn). Na prática, isso significa que eu não posso transformar a coluna IDCidade (já criada como DataGridViewTextBoxColum) em uma combo box.

     

                Portanto, o que resta fazer, caso o meu raciocínio acima estiver correto, é adicionar uma nova coluna com o tipo DataGridViewComboBoxColumn e ocultar a coluna IDCidade.

     

                Ai ficam as perguntas:

     

                - Está certo o meu raciocínio?

                - Como eu preencho a combobox da coluna de forma que ela tenha um “valor” que possa ser vinculada a coluna IDCidade (neste momento oculta)?

                - Como que eu vinculo o valor da ComboBox já preenchida a coluna IDCidade?

                - Como mantenho o valor do campo IDCidade sincronizado ao valor escolhido na ComboBox?

     

     

    Sou programador VB.net, porém entendo também o C#. Se por algum acaso quiser me mandar um exemplo ficaria extremamente grato.

     

    Grato

     

    pedroabs@terra.com.br

    quarta-feira, 21 de fevereiro de 2007 18:36

Respostas

Todas as Respostas