none
Cargar 1 TreeView con más de 1 Tabla (ItemSource) RRS feed

  • Pregunta

  • No puede votar su propia entrada Hola a tod@s,

    Quiero cargar en un TreeView (de 2 niveles) los datos de 2 tablas relacionadas entre si: MARCAS y MODELOS.

    He conseguido con éxito pasar toda una colección directamente al TreeView de la siguiente manera:  TreeView.ItemSource = MiColeccion

    Los datos los obtengo de la siguiente manera:
    a) un SP que me devuelve todas las MARCAS y me las almacena en una colección de objetos de clase Marca (creada previamente por mí)

    b) un SP que me devuelve todos los MODELOS pasándole mediante parámetro el MARCA_ID , y me los almacena en una colección de objetos de clase Modelo (creada previamente por mí)

    La cantidad de datos es poca, vamos, que lo ideal es que al cargar los datos de las marcas se fueran "insertando" registro a registro los datos de los modelos, y asi marca a marca.

    El objetivo final es que el usuario pinche en el '+' de la marca, se le muestren los modelos, y seleccione un modelo (y poder capturar el evento).

    Quien me pueda ayudar por favor que lo haga que le estare muy agradecido,

    Adjunto imagen,

    http://www.subirimagenes.com/imagen-dibujo-5761197.html

    Gracias a tod@s




    • Editado Igor_DC sábado, 8 de enero de 2011 0:03
    miércoles, 5 de enero de 2011 8:36

Todas las respuestas

  • Hola

    tienes que utilizar multibinding, dejar ver el AXML del pprimer nivel.

    mmmm estas utilizando MVVM???

    jueves, 6 de enero de 2011 0:45
  • Hola Wipito,

    Lo primero, muchas gracias por contestar. Lo primero aclarar que no soy un experto programando, y flojeo en algunos conceptos.

    He mirado lo de multibinding, y la verdad que para lo que yo necesito no creo que haga falta.  ¿Esta claro lo que quiero hacer? Es muy sencillo, por si acaso lo repito.

     

    Quiero cargar datos de 2 colecciones en un TreeView de 2 niveles -una colección para cada nivel-

    viernes, 7 de enero de 2011 19:34
  • Hola por cuestiones de tiempo, no te pongo un ejemplo, pero puedes mirar esta articulo, se que te servira de mucha ayuda, miralo y me cuentas, tal vez con mas tiempo y te ponga un ejemplo.

    http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

    • Propuesto como respuesta Wipito jueves, 13 de enero de 2011 0:10
    martes, 11 de enero de 2011 21:24
  • Hola WIpito, gracias por contestar, ya habia leido esa pagina pero weno. Una compañera de curro ya me comentó lo de binding, al final lo he solucionado de la siguiente manera:

     

    Bueno, por si alguien le interesa, al final lo solucione de la siguiente manera:

     

                For i As Integer = 0 To Marcas.Count - 1
                    Dim elemento As New TreeViewItem

                    elemento.Tag = Marcas(i)
                    trv.Items.Add(elemento)
                Next

     

    y luego en el evento SelectedItemChanged:

            Dim it As New TreeViewItem
            it = CType(trv.SelectedItem, TreeViewItem)

             Dim item As TreeViewItem

              Modelos es una coleccion de objetos Modelos de una marca

                For j As Integer = 0 To Modelos.Count - 1

                    item = New TreeViewItem
                    item.Tag = Modelos(j)
                    it.Items.Add(item)
                Next

     

    Funciona correctamente, la unica pega que en el treeview, los nodos me salen sin flechita, la flecha sale cuando hago click
    domingo, 16 de enero de 2011 20:01