lunes, 22 de abril de 2013

Incialización del valor en combox y listbox de windows forms mediante ValueMember

Problema

En un desarrollo Windows forms rellenas una combo o una listBox desde una consulta linq y estableces el ValueMember en un campo.

lista.ValueMember="id"
lista.addRange(Bd.mitabla.toArray())

Posteriormente quieres incializar seleccionando un elemento de lista que tiene un valor concreto:
lista.selectedValue=20

¡Y resulta que no funciona.!

Solución:

Usar:
  • Datasource en lugar de addRange
  • ToList en lugar de toArray.
lista.ValueMember="id"
lista.DataSource(Bd.mitabla.toList())

¡Y esto si que funciona!: lista.selectedValue=20

Comentario

Reconozco haber perdido mucho tiempo hasta haber descubierto esto. En mi descargo debo decir que en 1998 dejé de programa en Visual Basic 2012 y solo hace unos tres años que he vuelto a desarrollar en Windows Forms y muy esporadicamente.
Este es una de los tips que escribo prácticamente para mí, porque siempre se me olvida

No hay comentarios: