Usuario
Cargar 1 TreeView con más de 1 Tabla (ItemSource)

Pregunta
-
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
Todas las respuestas
-
-
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-
-
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
-
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)
Nexty 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