none
Guardar contenido de listbox en settings RRS feed

  • Pregunta

  • Hola maigos, tengo un problema y es que no encuentro como poder guardar el contenido de un listbox en un "Settings.Default.lista" y cargarlo de nuevo al iniciar el programa , espero puedan ayudarme
    sábado, 22 de septiembre de 2018 5:03

Respuestas

  •  como poder guardar el contenido de un listbox

    Hacen falta más datos. El contenido del ListBox está en la colección "Items". Pero la colección de Items es una colección de Object, podría contener cualquier cosa y el ListBox lo que mostraría en pantalla es el resultado de llamar al .ToString de esos Object.

    Aunque el sistema no sabe de antemano qué va a haber en esos Items (qué clase de Object), tú sí que lo sabes, porque has escrito previamente el código que carga esos Items. Entonces, tienes que recorrer con un bucle los Items y hacerles un "Cast" o una conversión al tipo correcto, y almacenarlos en una colección serializable de ese tipo (por ejemplo un List<Tipo>). No es necesario que el bucle lo escribas a mano, puedes usar por ejemplo el operador .Cast<Tipo> de LINQ, que solo requiere teclear una línea de código y ya ejecuta el bucle internamente.

    Y una vez que ya tengas el List<Tipo>, puedes asignarlo directamente al Settings.Default.lista, a condición de que el parámetro lista lo hayas declarado como List<Tipo>. Nota: No he encontrado manera de conseguir que el editor de Settings me deje poner List<Tipo>. Al final he tenido que editar el fichero fuente a mano para teclear el List<Tipo>. Una vez salvado sí que se puede abrir con el editor de Visual Studio y el editor reconoce el List<Tipo>.

    Nota: cerciórate de que "Tipo" se puede serializar y deserializar correctamente como XML (usando un XmlSerializer), ya que este es el formato que usa internamente el Settings para salvarlo.


    sábado, 22 de septiembre de 2018 16:45
    Moderador