Enlace a datos múltiple con combobox.

14/03/2006 - 14:18 por LuisFran | Informe spam
Buenas tardes,

Estoy utilizando Visual Studio .Net 2003.

Me ha surgido la necesidad de utilizar un combobox con la propiedad
DropDownStyle establecida a DropDownList (para que solo se puedan
seleccionar las opciones disponibles y solo una de ellas), pero en la
tabla he decidido almacenar el valor (SelectedValue) y el texto (Text),
aunque no sea lo más ortodoxo, lo reconozco. :-)

Me encontré con el problema que aunque establecía el databinding
correctamente solo se actualizaba el campo enlazado con SelectedValue.

Tras algunas pruebas me dí cuenta que el evento TextChanged del combo no
se producía, y que ese podía ser el origen de este comportamiento,
puesto que si el Text no cambia de estado (TextChanged) cuando ejecuto
el GetChanges() del dataset, ese campo no se seleccionaría.

Mi solución, que quizas sirva para alguno más, y que quisiera que me
digáis si es correcta es "forzar" el TextChanged, añadiendo la
instrucción this.cboDestino.Text = "", en el código del evento
SelectedValueChanged que se desencadena cuando seleccionas una opción de
la lista.

Con esta solución, enlazo correctamente el valor y el texto del combo
con mi origen de datos.

Saludos,
LuisFran.
 

Leer las respuestas

#1 Vyacheslav Popov
14/03/2006 - 17:03 | Informe spam
Hola LuisFran

Otro modo de obtener el texto seria el siguiente:

DataRowView drv = (DataRowView)comboBox1.Items[comboBox1.SelectedIndex];
//string texto = drv["propiedad"].ToString();
string texto = drv[comboBox1.DisplayMember].ToString();

En este caso podrías programar el evento ValueChanged o SelectedIndexChanged
del comoboBox.

Saludos.

"LuisFran" escribió en el mensaje
news:%
Buenas tardes,

Estoy utilizando Visual Studio .Net 2003.

Me ha surgido la necesidad de utilizar un combobox con la propiedad
DropDownStyle establecida a DropDownList (para que solo se puedan
seleccionar las opciones disponibles y solo una de ellas), pero en la
tabla he decidido almacenar el valor (SelectedValue) y el texto (Text),
aunque no sea lo más ortodoxo, lo reconozco. :-)

Me encontré con el problema que aunque establecía el databinding
correctamente solo se actualizaba el campo enlazado con SelectedValue.

Tras algunas pruebas me dí cuenta que el evento TextChanged del combo no
se producía, y que ese podía ser el origen de este comportamiento, puesto
que si el Text no cambia de estado (TextChanged) cuando ejecuto el
GetChanges() del dataset, ese campo no se seleccionaría.

Mi solución, que quizas sirva para alguno más, y que quisiera que me
digáis si es correcta es "forzar" el TextChanged, añadiendo la instrucción
this.cboDestino.Text = "", en el código del evento SelectedValueChanged
que se desencadena cuando seleccionas una opción de la lista.

Con esta solución, enlazo correctamente el valor y el texto del combo con
mi origen de datos.

Saludos,
LuisFran.

Preguntas similares