net - listview c#
Cómo obtener el valor del elemento seleccionado de la lista (4)
Realmente debería ser así de fácil; Tengo lo siguiente en un evento de clic para el botón para asegurarme de no simplificarlo en mi cabeza:
private void button1_Click(object sender, EventArgs e)
{
string selected = listBox1.GetItemText(listBox1.SelectedValue);
MessageBox.Show(selected);
}
Y el resultado:
Editar
Parece que su problema puede deberse a no establecer una propiedad en el control:
- Seleccione el control ListBox
- Haga clic en la pequeña flecha para mostrar las opciones de encuadernación / elementos
- Seleccione Usar elementos enlazados a datos
Si desactivo esa casilla, obtengo exactamente el mismo comportamiento que está describiendo.
Estoy trabajando con C # .NET 4.0
Estoy tratando de obtener el valor de un solo elemento seleccionado en un cuadro de lista.
Así es como llené el control:
this.files_lb.DataSource = DataTable object
En mi diseñador, he especificado file_name como DisplayMember y file_id como DisplayValue
Después de seleccionar un elemento en el cuadro de lista, intenté lo siguiente para obtener el valor:
this.files_lb.SelectedValue.ToString()
Pero todo lo que devuelve es "System.Data.DataRowView".
En este enlace: obtener el valor del elemento seleccionado en el cuadro de lista como cadena
alguien sugirió
String SelectedItem = listBox1.SelectedItem.Value
Sin embargo, ''Valor'' no es una opción cuando intento esto.
¿Cómo puedo obtener el valor ValueMember de un solo elemento seleccionado en un cuadro de lista?
var text = (listBox1.SelectedItem as DataRowView)["columnName"].ToString();
Reemplace columnName
con el nombre de la columna de la que desea obtener los datos, que se corresponderá con una columna en su fuente de datos.
También ten cuidado con los nulos si no hay un elemento seleccionado.
Es posible que deba establecer DataValueField del cuadro de lista.
NewEmployeesLB.DataSource = newEmployeesPersons.DataList.Select(np => new
ListItem() { Text = np.LastName + ", " + np.FirstName, Value = np.PersonID.ToString() }).ToList();
NewEmployeesLB.DataTextField = "Text";
NewEmployeesLB.DataValueField = "Value";
NewEmployeesLB.DataBind();