Principales respuestas
Recorrer un listview con Checkbox

Pregunta
-
Hola buenas tardes, tengo un listview con diseño de checkbox, y deseo recorrer y saber cuales son mis elementos seleccionados, les mostrare como lo cargo con la información:
Esta esta en el load:
lvVideoJuegos.View = View.Details;
lvVideoJuegos.Columns.Add("Código", 100);
lvVideoJuegos.Columns.Add("Video juego", 150);
lvVideoJuegos.Columns.Add("Tipo video juego", 150);y luego en un boton, lo lleno por medio de una funcion que llama un procedimiento de almacenado:
ObjDataSet = Objdatos.PAMostrarVideoJuegos();
foreach (DataRow row in ObjDataSet.Tables[0].Rows)
{
ListViewItem item = new ListViewItem(Convert.ToString(row["IdVideoJuego"]));
item.SubItems.Add(Convert.ToString(row["DescripcionVideoJuego"]));
item.SubItems.Add(Convert.ToString(row["DescripcionTipoVideoJuego"]));
lvVideoJuegos.Items.Add(item);
}Me falta crear mi ciclo for para recorrer los items seleccionados e ir insertando en la BD por medio de otra funcion que llama el procediento de almacenado que grabara, que lo llamare con un boton "Alquilar":
Espero me puedan orientar, gracias!!
Respuestas
-
Hola:
Podrias usar Linq para poder recuperar todos los Items seleccionados del control, para posteriormente ir mapeando los valores a los objetos que desees.
Te muestro un ejemplo usando una clase para obtener los valores correspondientes de los Items seleccionados:
IEnumerable<ListViewItem> items = (listView.CheckedItems.Cast<object>().Cast<ListViewItem>()).ToList(); if (items.Any()) { return items.Select(item => new NombreClase() { NombrePropiedad = item.SubItems[1].Text}).ToList(); }
El código podrías ponerlo dentro de una Función que te retorne una Lista de clases con todas las propiedades que desees, una lista de tipo string, int, etc, básicamente retornas lo que necesites para posteriormente utilizarlo donde desees o si así lo deseas ir enviando a la Bd directamente (esto según tu forma de programar).
Saludos desde Monterrey, Nuevo León, México!!!
- Propuesto como respuesta Pedro Ávila domingo, 25 de junio de 2017 20:02
- Marcado como respuesta Joyce_ACModerator miércoles, 28 de junio de 2017 13:40
Todas las respuestas
-
-
Hola:
Podrias usar Linq para poder recuperar todos los Items seleccionados del control, para posteriormente ir mapeando los valores a los objetos que desees.
Te muestro un ejemplo usando una clase para obtener los valores correspondientes de los Items seleccionados:
IEnumerable<ListViewItem> items = (listView.CheckedItems.Cast<object>().Cast<ListViewItem>()).ToList(); if (items.Any()) { return items.Select(item => new NombreClase() { NombrePropiedad = item.SubItems[1].Text}).ToList(); }
El código podrías ponerlo dentro de una Función que te retorne una Lista de clases con todas las propiedades que desees, una lista de tipo string, int, etc, básicamente retornas lo que necesites para posteriormente utilizarlo donde desees o si así lo deseas ir enviando a la Bd directamente (esto según tu forma de programar).
Saludos desde Monterrey, Nuevo León, México!!!
- Propuesto como respuesta Pedro Ávila domingo, 25 de junio de 2017 20:02
- Marcado como respuesta Joyce_ACModerator miércoles, 28 de junio de 2017 13:40