Mostrando entradas con la etiqueta ComboBox. Mostrar todas las entradas
Mostrando entradas con la etiqueta ComboBox. Mostrar todas las entradas

martes, 19 de septiembre de 2017

ComboBox texto y valor - C # (ID, Clave o como quieras llamarlo)

Vi que hay muchas preguntas al respecto, y también muchas respuestas. Pero vi que todas son muy complicadas. Así que aquí esta mi aporte de algo sencillo y comprensible, de cómo guardar un Texto o Cadena y un Valor asociado en un ComboBox.

El siguiente muestra cómo agregar texto (lo que se ve en el Combobox) y un valor asociado (que no se ve, pero el momento de escoger recupera este valor) este valor puede ser el ID de algo, normalmente utilizado en Base de Datos.



Para agregar texto y valor, usaremos un objeto Dictionary para almacenar el texto y valor.
Después de agregar los elementos al diccionario, el siguiente paso es configurar este objeto de diccionario como un DataSource en el ComboBox.
Coloca esto en el evento load del formulario.

Dictionary DatosCombo =  new Dictionary();
DatosCombo.Add(10, "Lunes");
DatosCombo.Add(20, "Martes");
DatosCombo.Add(30, "Miércoles");
DatosCombo.Add(40, "Jueves");
DatosCombo.Add(50, "Viernes");
DatosCombo.Add(60, "Sábado");
DatosCombo.Add(70, "Domingo");

comboBox1.DataSource = new BindingSource(DatosCombo, null);
comboBox1.DisplayMember = "Value";
comboBox1.ValueMember = "Key";

Como verás no es difícil entender, con esto llenamos el Combo Box.

Ahora, a recuperar la clave o valor de lo que está seleccionado. Para esto crea un Boton y coloca esto dentro el botón.

int key = ((KeyValuePair)comboBox1.SelectedItem).Key;
string value = ((KeyValuePair)comboBox1.SelectedItem).Value;
MessageBox.Show(key + "   " + value);

Bueno, espero te haya servido.
Hasta pronto....


jueves, 29 de agosto de 2013

Obtener el valor del item seleccionado del ListBox o ComboBox en C# WPF

Es habitual que además de añadir una cadena al ListBox o ComboBox añadamos o relacionemos también un valor numérico con dicha cadena. También sucede que al recuperar, por lo menos los que estamos acostumbrados a VB quisiéramos recuperar el valor de esta forma ListBox1.SelectedValue, sin embargo esto no funciona en controles WPF, pero aquí les dejo la forma de recuperar el valor (no la cadena que puede ser visualizada) en 2 lineas.

Si es un ListBox,

string valor = ((System.Data.DataRowView)ListBox1.SelectedItem).Row.ItemArray[0].ToString();
MessageBox.Show(valor);

Si es un ComboBox

string valor = ((System.Data.DataRowView)ComboBox1.SelectedItem).Row.ItemArray[0].ToString();
MessageBox.Show(valor);

(editado)
Si por si caso te preguntas como recuperar la cadena que has seleccionado

string valor = ComboBox1.SelectedItem.ToString();
MessageBox.Show(valor);