none
Almacenar temporalmente datos relacionados con nodos Treeview RRS feed

  • Pregunta

  •  

    Hola, espero que alguien pueda ayudarme...

     

    En un formulario tengo un treeview en cual va a estar compuesto por nodos de tipo carpeta, servidor, y un groupbox para cada uno de los tipos de nodo. Estos nodos los añade el usuario según lo necesite.

     

    Lo que quiero es que cuando seleccione un nodo, mostrar, según del tipo que sea el nodo, su groupbox correspondiente con todos los datos asociados al nodo cargados en los controles. En el groupbox hay textbox, checkbox, combobox.. un poco de todo..

     

    Mi duda es la siguiente:

     

    ¿Cómo podría ir guardando temporalmente todos los datos de cada nodo para que al darle a guardar todos los cambios que se hayan realizado estén almacenados y guardarlos correctamente?? Ya que en cada momento solo van a estar cargados en el groupbox los datos asociados al nodo seleccionado...

     

    No se si me he explicado correctamente, si no han entendido algo, ya me dirán..

     

    Saludoss!! Y graciasss!

    viernes, 10 de octubre de 2008 9:28

Todas las respuestas

  • Nadie puede ayudarme?? Ninguna idea??

     

    martes, 14 de octubre de 2008 7:22
  • A ver si al menos me decís que os parece esto que se me ha ocurrido...

     

    Crear una clase para cada tipo de nodo: Carpeta.cs, Servidor.cs, Perfil.cs. Usar listas genéricas para ir almacenando los nodos creados, declararando una variable en el formulario de tipo List<Carpeta>, List<Servidor>, List<Perfil>. Y almacenar el nodo creado en su lista.

     

    Es decir quedaría en principio algo así

     

    public class Carpeta

    {

    //Campos y propiedades

    }

     

    public class Servidor

    {

    //Campos y propiedades

    }

     

    public class Perfil

    {

    //Campos y propiedades

    }

     

     

    y luego cada vez que se cree un nodo, instanciar la clase que sea.

     

    Que se crea un nodo de tipo perfil pues Perfil p= new Perfil();

     

    Cuando se cambia la selección del nodo, en el evento BeforeSelect (es decir, antes de cambiar la selección) se guardarían los datos y se añadirían a la lista correspondiente. O si ya existe en la lista pues se modifica.

     

    List<Carpeta> listaCarpetas = new List<Carpeta>;

    List<Servidor> listaServidores = new List<Servidor>;

    List<Perfil> listaPerfiles = new List<Perfil>;

     

    Que os parece esta idea??

    miércoles, 15 de octubre de 2008 7:40
  • :-)

    Hola,

     

    Puedes crear una clase Nodo, con los atributos necesarios (nombre, tipo, nodopadre, etc) y otra clase DetalleNodo con los detalles de cada nodo (estos los sabras tu).

     

    En la clase Nodo debes crear una propiedad de Tipo List(Of DetalleNodo) que almacene todos los detalles e cada nodo, y posteriormente para guardar los datos puedes persistirlos en un fichero XML mediante serialización.

     

    Si nos das más detalles tal vez te podamos ayudar mejor...

     

    miércoles, 15 de octubre de 2008 8:46
    Moderador
  •  

    Muchas gracias Lluis...

     

    No me ha quedado muy claro..  en nodo una propiedad que sea List(DetalleNodo)?? No serìa simplemente DetalleNodo?

    O a ver si es que lo de DetalleNodo no lo he entendido... Por ejemplo, para Servidor tengo de campos ip, puerto, generarTrazas (bool), rutaTrazas. Para Perfil, por ejemplo, timeSession, loginType, autologinUser, autologinPass...etc. Entonces lo que entiendo es que cree una clase DetalleServidor con sus campos y luego otra DetallePerfil??

     

    Esta aplicación (es una parte de todo el conjunto, luego hay otras dos) lo que va a hacer es conectarse con los servidores y comunicándose con ellos obtener sus perfiles, y desde esta aplicacion poder modificar los perfiles que se quieran sin necesidad de ir haciéndolo servidor a servidor. También poder crear nuevos servidores, con nuevos perfiles, puestos..  Los cambios que se hagan en este gestor, en los perfiles o en los servidores se guardarán solo en cada uno de los servidores, ahí ya entra un tema de comunicaciones entre gestor y servidores (aquí no me hace falta, en principio, guardarlo en xml, de todos modos eso ya estuve probando como hacerlo y ya lo tengo). Por eso quería una forma de ir almacenando en el gestor todos los cambios que se vayan haciendo hasta que el usuario haga clic en el botón de guardar, y cuando haga esto se actualizaran los datos en los servidores correspondientes.

     

    Espero haberme explicado lo suficiente....

     

    Mil gracias nuevamentee!!

    miércoles, 15 de octubre de 2008 9:11