none
Preencher Datagridview com uma Collections.Generic.List<T> RRS feed

  • Pergunta

  • Olá pessoal,

    Gostaria de poder contar com help de vcsc...
    Estou usndo windowsForms e preciso popular um DataGridview com uma Collections.Generic.List<T> , até ai sem bronca, pois consigo fazer isso usando o código abaixo.

    ...

    List<Produto> listaProdutos = new List<Produto>();
                             listaProdutos = fachada.buscarTodoslistaProdutos ();   //<-- esse metodo retorna uma lista de objetos produtos

    this.DataGridViewProduto.DataSource = 
    listaProdutos;  // <-- linha usada para  popular o DataGridView

    ....

     

    Agora vem a bronca q nao estou conseguindo resolver..

    A classe produtos e composta dos atributos :

    public class Produto {

     

    public long idProdutoInterno { get; set; }
    public Fornecedor fornecedor { get; set; }
    public string descricao { get; set; }
    public string situacao { get; set; }  

     

    ....
    }

    E ao carregar o DataGridViewProduto  a coluna  fornecedor está sendo populada assim entidades.Fornecedor, pois fornecedor é uma atributo da classe produto do tipo Fornecedor(onde fornecedor seria uma outra classe que possui diversos atributos como: idFornecedor, nomeFantasia, razaoSocial, CNPJ).

     

    Como faco para exibir no grid o nomeFantasia ao invés de entidades.Fornecedor no DataGridView.Ou seja, como faço para nao gerar as colunas automaticamente no grid e sim determinar  quais colunas/valores devo exibir no DataGridView de acordo com  minha escolha?

     

    PS: preciso desse Help com C#, pois a aplicação esta sendo desenvolvida em C#...

     

    Ajuda ai galera!!!

     

     

     

     

     

     


    • Editado Henrikalma quarta-feira, 28 de setembro de 2011 01:52
    quarta-feira, 28 de setembro de 2011 01:51

Todas as Respostas

  • Boa noite Henrikalma...

    Tenta da seguinte forma:

     

    var dados = listaProdutos.Select(p=> new
                                                {
                                                      p.descricao,
                                                      p.idProdutoInterno,
                                                      p.fornecedor.campo1,
                                                      p.fornecedor.NomeFantasia, 
                                                });
    

    Depois de carregado a variável dados só atribuir no GridView...

    Espero ter ajudado....

     


    Eder dos Santos Silva Analista Programador Pleno Portfólio: http://www.ederssilva.com.br
    quarta-feira, 28 de setembro de 2011 02:24
  • Eder  infelizmente nao funcionou...

     

    Meu obj listaProdutos nao possui essse metodo  ".Select" :(

    Essa sintaxe é mesmo para c#? 

     

    de qualquer forma, valeu a força!!



    • Editado Henrikalma quarta-feira, 28 de setembro de 2011 13:26
    quarta-feira, 28 de setembro de 2011 13:24
  • Bom dia ...

    Adicione o Namespace

    using System.Linq;
    

    Deve funcionar...


    Eder dos Santos Silva Analista Programador Pleno Portfólio: http://www.ederssilva.com.br
    quarta-feira, 28 de setembro de 2011 13:29