Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fcstein

Carregar List genérico em DataGridView

Recommended Posts

Boa noite

 

Pessoal, estou com um problema para carregar o DataGridView com List de objeto genérico no VB.

Tenho uma classe Cliente que possui uma propriedade cidade, da classe Cidade.

No grid quero mostrar o nome do cliente e o nome da cidade.

 

Para isso carrego um List de Cliente e jogo para o DataSource do grid, fica mais ou menos assim (vou colocar só os campos quero mostrar para ficar mais legivel):

 

 

 

Public Class Cliente
    Property nome As String
    Property cidade As Cidade


    Public Sub New(ByVal nome As String, ByVal cidade As Cidade)        Me.nome = nome
        Me.cidade = cidade
    End Sub

End Class


Public Class Cidade
    Property nomeCidade As String


    Public Sub New(ByVal nomeCidade As String)
        Me.nomeCidade = nomeCidade
    End Sub


End Class

 

 

'dentro do form fica assim:

 

 

 

Public Class Form1
    Dim listaClientes As New List(Of Cliente)
   
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1.AutoGenerateColumns = False


        Dim cid As New Cidade("Porto Alegre")
        
        listaClientes.Add(New  Cliente("Fernando", cid))


        DataGridView1.DataSource = listaClientes


    End Sub


End Class

 

No grid, adicionei as Columns e na propriedade DataPropertyName passei a propriedade que quero que apareça em cada Column, mas a cidade, no grid, fica apenas com nomeDoProjeto.Cidade, ao invés de "Porto Alegre"
Alguém sabe como resolvo isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode adicionar uma cidade como "New Cidade", você deve adicionar a propriedade do nome da cidade como string, ou seja

 

 


Public Sub New(ByVal nome As String, ByVal cidade As String)        
Me.nome = nome         
Me.cidade = cidade     
End Sub

E depois você cria uma nova instancia:

 

 

 

Dim cid As New Cidade("Porto Alegre")                  

listaClientes.Add(New  Cliente("Fernando", cid.nomecidade))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma aí, você está dizendo que eu não devo ter uma propriedade do tipo Cidade no meu cliente, e sim o nome da cidade como String?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.