Usuário com melhor resposta
ComboBox e DataGridView usando List(Of objeto)

Pergunta
-
Salve!
Tenho uma solução que tem um site e mais três bibliotecas de classes para acesso aos dados.
Agora preciso de fazer um programa Windows acessando alguns dos dados da aplicação Web.
Na interface Windows que está sendo criada tenho controles ComboBox e DataGridView. Para preencher estes controles quero usar os métodos que já tenho nas classes que foram criadas para o projeto Web. A questão é que as classes que retornam dados retornam List(Of objeto), por exemplo:
Public Function ListarEmpregados() As List(Of DTO.clsEmpregado), onde DTO é uma biblioteca de classes e clsEmpregado é uma das classes.
Como aproveitar esse método (para popular um ComboBox, por exemplo, com o nome (propriedade DisplayMember) e o ID (propriedade ValueMember)?
Grato pela atenção de todos.
Paulo Ricardo Ferreira
Respostas
-
Paulo Ricardo,
Você pode setar o DisplayMember e ValueMember para alguma propriedade da sua classe (atenção: propriedade, e não atributo!)... Então, desde que você tenha as propriedades, por exemplo, ColaboradorID e Nome na sua classe, você poderia fazer da seguinte maneira:
cboNomes.DataSource = lst
cboNomes.DisplayMember = "Nome"
cboNomes.ValueMember = "ColaboradorID"
André Alves de Lima
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta PRicardo Ferreira segunda-feira, 22 de novembro de 2010 10:58
-
Você vai defini-la com os nomes das propriedade referentes ao código e a descrição da sua classe DTO.clsEmpregado.
É como se ela fosse uma tabela, só que as colunas são as propriedades.
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Marcado como Resposta PRicardo Ferreira segunda-feira, 22 de novembro de 2010 11:30
Todas as Respostas
-
Paulo,
Você só tem que setar a propriedade DataSource do ComboBox para a lista retornada pela sua função.
Então você seta o DisplayMember e ValueMember.
Mais:
http://msdn.microsoft.com/en-us/library/w67sdsex.aspx
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Sugerido como Resposta AndreAlvesLimaModerator sábado, 20 de novembro de 2010 21:20
- Não Sugerido como Resposta PRicardo Ferreira segunda-feira, 22 de novembro de 2010 10:20
-
Paulo Ricardo,
Você pode setar o DisplayMember e ValueMember para alguma propriedade da sua classe (atenção: propriedade, e não atributo!)... Então, desde que você tenha as propriedades, por exemplo, ColaboradorID e Nome na sua classe, você poderia fazer da seguinte maneira:
cboNomes.DataSource = lst
cboNomes.DisplayMember = "Nome"
cboNomes.ValueMember = "ColaboradorID"
André Alves de Lima
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta PRicardo Ferreira segunda-feira, 22 de novembro de 2010 10:58
-
Caro Rogério,
Eu já tinha tentado isso dessa forma:
Private Sub CarregaNomes() cboNomes.DataSource = New BLL.Empregados().ListarEmpregados() cbonomes.DisplayMember=? End Sub
Aí é que surge a minha dúvida: como vou definir as propriedades DisplayMember e ValueMember do combobox já que para acessar uma propriedade do objeto da lista tenho que acessar cada item da lista retornada pelo método ListarEmpregados()?
Grato pela sua atenção.
Paulo Ricardo Ferreira
-
-
Você vai defini-la com os nomes das propriedade referentes ao código e a descrição da sua classe DTO.clsEmpregado.
É como se ela fosse uma tabela, só que as colunas são as propriedades.
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Marcado como Resposta PRicardo Ferreira segunda-feira, 22 de novembro de 2010 11:30
-