public MainWindow() { InitializeComponent(); _rootItem =CreateItems(); trvLista.DataContext = _rootItem; }
/// <summary> /// Se crea el árbol de nodos /// </summary> /// <returns></returns> private NodeItem CreateItems() { //Elemento principal NodeItem ItemMain = new NodeItem { Text = "Main" }; //Se crean dos sub nodos. NodeItem ItemA = new NodeItem { Text = "Item A" }; NodeItem ItemB = new NodeItem { Text = "Item B" }; //Se añaden al nodo principal ItemMain.Items.Add(ItemA); ItemMain.Items.Add(ItemB); //Grupo de sub nodos para ItemA NodeItem ItemA1 = new NodeItem { Text = "Item A 1" }; NodeItem ItemA2 = new NodeItem { Text = "Item A 2" }; NodeItem ItemA3 = new NodeItem { Text = "Item A 3" }; //Se añaden al Item A ItemA.Items.Add(ItemA1); ItemA.Items.Add(ItemA2); ItemA.Items.Add(ItemA3); //Grupo de sub nodos para ItemB NodeItem ItemB1 = new NodeItem { Text = "Item B 1" }; NodeItem ItemB2 = new NodeItem { Text = "Item B 2" }; //Se añaden al Item B ItemB.Items.Add(ItemB1); ItemB.Items.Add(ItemB2); //Se añade un tercer nivel, al ItemA1 NodeItem ItemAA = new NodeItem { Text = "Item de tercer nivel" }; ItemA1.Items.Add(ItemAA); return ItemMain; }
/// <summary> /// Muestra el estado de nodo y sus hijos, si tiene. /// </summary> /// <param name="item"></param> private void ShowItems(NodeItem item) { AddMensaje(String.Format("{0}: {1}", item.Text, item.IsChecked)); foreach (NodeItem node in item.Items) { if (item.Items.Count > 0) ShowItems(node); } }