public void AddNode(TreeViewNodeControl node)
        {
            node.ParentID = this.id;
            node.ChangeValue("PID:" + node.ParentID + "\n ID:" + node.id);
            if (collection == null)
            {
                collection = new List <TreeViewNodeControl>();
            }

            if (!TreeViewGlobal.ParentChildPair.ContainsKey(this.id.ToString()))
            {
                node.ParentID = this.id;
                TreeViewGlobal.ParentChildPair.Add(this.id.ToString(), new List <string> {
                    node.id.ToString()
                });
            }
            else
            {
                TreeViewGlobal.ParentChildPair[this.id.ToString()].Add(node.id.ToString());
            }
            collection.Add(node);
            this.Container.Dispatcher.Invoke(() => {
                (Container as Grid).Children.Add(node);
            });
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            var node = new TreeViewNodeControl(Container);

            AddNode(node);
        }
Exemple #3
0
        private void TreeViewControl_Loaded(object sender, RoutedEventArgs e)
        {
            DispatcherTimer DT = new DispatcherTimer();

            DT.Interval = TimeSpan.FromSeconds(1);
            DT.Tick    += DT_Tick;

            lineR.Stroke          = Brushes.Black;
            lineR.X1              = 10;
            lineR.X2              = 100;
            lineR.Y2              = 10;
            lineR.Y1              = 100;
            lineR.StrokeThickness = 4;
            DT.Start();
            lineR.Name = "TestSub";
            Collecstion.TryAdd(lineR.Name, lineR);
            GR.Children.Add(lineR);

            bool hasnode = false;

            var t = new TreeViewNodeControl(GR);

            t.AddNode(new TreeViewNodeControl(GR));
            t.ChangeValue("ID:" + t.id);
            GR.Children.Add(t);
            t.collection.FirstOrDefault().AddNode(new TreeViewNodeControl(GR));

            t.MoveEvent += T_MoveEvent;
            TreeViewNodeControl gg;

            gg = t;
T:


            foreach (var d in gg.collection)
            {
                hasnode      = false;
                d.MoveEvent += T_MoveEvent;
                if (d.collection != null)
                {
                    hasnode = true;
                    gg      = d;
                }
                var control = d;
                if (control.ParentID != 0)
                {
                    if (!ComplexCollections.ContainsKey(control.ParentID))
                    {
                        ComplexCollections.Add(control.ParentID, new List <TreeViewNodeControl> {
                            control
                        });
                    }
                    else
                    {
                        ComplexCollections[control.ParentID].Add(control);
                    }
                    control.ChangeValue("PID:" + control.ParentID + "\n ID:" + control.id);
                }
            }
            if (hasnode)
            {
                goto T;
            }
            else
            {
                goto F;
            }
F:
            UpdateLine();
            TreeViewGlobal.MoveEvent += TreeViewGlobal_MoveEvent;
        }