Si tengo dos elementos con el mismo DisplayMember pero un ValueMember diferente y quiero seleccionar uno de los dos elementos mediante programación, ¿cómo puedo hacer esto?Cómo seleccionar el elemento de cuadro de lista por ValueMember
artículos:
123 -> Peter Pan
234 -> John Doe
345 -> Peter Pan
no puedo seleccionar el último Peter Pan haciendo
Listbox1.FindStringExact("Peter Pan");
porque esto sólo devuelve la primera aparición Lo siguiente también no funciona, ya que sólo conjuntos el elemento seleccionado, pero no lo muestra en la lista:
Listbox1.SelectedItem = dataTable.Rows.Find(345);
Who c y ayúdame con esto?
Actualización:
encontró un poco de más información a mí mismo, la lista está ordenada, por lo tanto, cuando actualice el DataTable (que se utiliza para rellenar la lista) la lista se recurrió, y parece que seleccionar el elemento que estaba en lugar del elemento editado.
listBox1.FindStringExact sólo funciona si el DisplayMember es diferente
esto tampoco funciona, porque entonces la lista sigue tomando el índice seleccionado y selecciona ese elemento (la lista está ordenada) – Michael
@Michael, 'SelectedIndex' hace lo que dice,' SelectedValue' se supone que busca el elemento desde su propiedad 'ValueMember'. ¿Lo intentaste? –
@ Frédéric La lista está ordenada, por lo tanto, cuando cambio el SelectedValue, el evento SelectedIndexChanged se desencadena, obtengo el SelectedRow por ListBox1.SelectedItem, esto devuelve el elemento seleccionado en la lista con el índice del valor seleccionado, justo antes de eso, la clasificación cambió la forma en que se ordenó la lista y, por lo tanto, obtener la fila incorrecta – Michael