/// <summary> /// when treeview selected changed, print the node info /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tvNode_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { NodeTree t = tvNode.SelectedItem as NodeTree; switch (t.Type) { case ClassType.Root: case ClassType.PClassOne: case ClassType.PClaseeTwo: Console.WriteLine("root or parent node : " + t.Name); break; case ClassType.ClassOne: ClassOne one = t as ClassOne; Console.WriteLine(string.Format("class one : {0}, radius : {1}.", one.Name, one.Radius)); break; case ClassType.ClassTwo: ClassTwo two = t as ClassTwo; Console.WriteLine(string.Format("class two : {0}, importance : {1}, time : {2}.", two.Name, two.Importance, two.Time)); break; default: break; } }
/// <summary> /// Add Node to the info /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddNode_Click(object sender, RoutedEventArgs e) { switch (cbType.SelectedIndex) { case 0: ClassOne n = new ClassOne() { ID = 5, Name = tbNodeName.Text, ParentID = 1, Type = ClassType.ClassOne, Radius = Convert.ToDouble(tbRadius.Text), }; DataSrc.nodeTrees[0].Nodes[0].Nodes.Add(n); break; case 1: ClassTwo no = new ClassTwo() { ID = 6, Name = tbNodeName.Text, ParentID = 2, Type = ClassType.ClassTwo, Importance = Convert.ToInt32(tbimportance.Text), Time = Convert.ToInt32(tbTime.Text), }; DataSrc.nodeTrees[0].Nodes[1].Nodes.Add(no); break; default: break; } RefreshTreeView(); }