gromano 0 Denunciar post Postado Maio 17, 2011 Prezados, Estou tentando popular um combobox de forma que eu exiba um dado, mas quando selecionar um item, o valor selecionado seja outro. Para exemplificar, seria como se no combobox o usuário visse o nome do cliente, mas quando selecionar algum método pudesse trabalhar com o código do usuário, ao invés do nome. Sei que as propriedades DisplayMember e ValueMember fazem este papel, mas só consigo usá-las quando seto o DataSource. Neste meu caso, os valores estão vindo de um List<string>, mas não consegui usar o DataSource e preencher as propriedades DisplayMember e ValueMember. public void ColetarImgs(string reg_key) { DataRow[] dr = _docs.Select("RegKey = " + reg_key); string fieldimg = dr[0].ItemArray[13].ToString(); List<string> imgs = RetornaImgs(fieldimg); cbPaginas.DataSource = imgs; } Com este método acima, consigo preencher o combobox, mas com o valor total do campo. Gostaria que o DisplayMember fosse parte do campo (exemplo: campo.Split('-')[3]) e o ValueMember fosse o valor total do campo. Existe alguma forma de se fazer isto? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Maio 18, 2011 Desculpa, mas não entendi como armazena em uma List<string> um código e um valor? Se você armazenar somente um valor terá que fazer uma consulta no seu banco novamente. A solução seria usar uma List<SuaClasse> ou um Dictionary. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
gromano 0 Denunciar post Postado Maio 19, 2011 Desculpa, mas não entendi como armazena em uma List<string> um código e um valor? Se você armazenar somente um valor terá que fazer uma consulta no seu banco novamente. A solução seria usar uma List<SuaClasse> ou um Dictionary. Abraços... Na verdade, o que está na List<string> é o dado completo. E este é o nome de um arquivo. Ex.: C:\documentos\pref-0123-00001.doc Quero que no combobox seja exibido o pref-0123-000001.doc, mas quando eu for usar este dado para se chegar no arquivo, eu tenha o retorno do caminho completo. Então em uma mesma linha da List<string> eu já conseguiria extrair o "código" e o dado a ser exibido. Não sei se consegui explicar... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Maio 20, 2011 Antes de alimentar seu combo você terá que percorrer toda sua lista, utilizar o substring ou expressão regular pra conseguir extrair somente a parte desejada e alimentar outra lista, com o caminho completo e com somente o nome. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Daniel LM Costa 2 Denunciar post Postado Maio 20, 2011 É extremamente necessário usar List<string>, usando dateset tipado a coisa poderia ter menos complicações.. Compartilhar este post Link para o post Compartilhar em outros sites
gromano 0 Denunciar post Postado Maio 20, 2011 Entendi. Consegui assimilar as alternativas que falaram e resolvi o problema usando um List<> de um objeto que criei para esta finalidade. Muito obrigado pelas respostas e atenção dispensada. Compartilhar este post Link para o post Compartilhar em outros sites