Estoy escribiendo una aplicación de winforms en la que un usuario selecciona un elemento de un cuadro de lista y edita algunos datos que forman parte de un objeto asociado. Las modificaciones se aplican desde la lista de objetos a un archivo subyacente.¿Cómo obtengo la "clave" del elemento de la lista en la aplicación C# winforms?
En ASP.Net asignar un valor de sistema diferente a un elemento de la lista que el texto de visualización que el usuario ve es trivial. En una aplicación de winforms, debe establecer el "Displaymember" y el "Valuemember" de cada elemento en un proceso un poco más complicado (y no muy relacionado en Internet).
Esto lo he hecho. En el modo de depuración, he confirmado que cada elemento ahora tiene un valor que es el miembro de visualización (una cadena "amigable" que el usuario ve) y una clave, el miembro de valor, que contiene la clave de un objeto hashtable donde los datos se actualizarán existe
Así que cuando un usuario elige una cadena para editar el programa debe pasar la "clave" a la tabla hash, tirar del objeto y permitir que la edición tenga lugar en él.
¿La captura?
No veo ninguna forma obvia de decirle al programa que mire al miembro de valor del artículo. Ingenuamente esperaba que llenara la propiedad "SelectedValue" del cuadro de lista, pero eso sería demasiado simple por el momento. Entonces, ¿cómo demonios llego al valor del elemento de la lista?
¿Ha establecido la propiedad DataSource? – Phaedrus
No lo hice, pero solo estaba tratando de armar una muestra rápida. Supuse (¿incorrectamente?) Que SelectedValue se establecería independientemente de dónde provenían los datos. – Andy