コード例 #1
0
        private void AddNode(CsgNode node)
        {
            if (root == null)
            {
                return;
            }
            CsgNodeWrapper      wrapper  = root.Node.Repository.GetWrapper(node);
            CsgNodeTreeViewItem item     = nodeView.SelectedItem as CsgNodeTreeViewItem;
            CsgGroupWrapper     selected = null;

            while (item != null)
            {
                selected = item.Node as CsgGroupWrapper;
                if (selected != null)
                {
                    break;
                }
                item = item.Parent as CsgNodeTreeViewItem;
            }
            if (selected == null)
            {
                selected = root.Node as CsgGroupWrapper;
            }
            if (selected != null)
            {
                selected.AddChild(wrapper);
            }
        }
コード例 #2
0
 protected override void OnDrop(DragEventArgs e)
 {
     string[] ids = (e.Data.GetData(DataFormats.Text) as string ?? string.Empty).Split('|');
     e.Handled = true;
     if (ids.Length == 2)
     {
         CsgNodeWrapper wrapper = Node.Repository.GetWrapperById(ids[0]);
         if (e.Effects == DragDropEffects.Move)
         {
             CsgGroupWrapper parent = Node.Repository.GetWrapperById(ids[1]) as CsgGroupWrapper;
             if (wrapper != null && parent != null)
             {
                 CsgNodeTreeViewItem item = this;
                 while (item != null)
                 {
                     if (item.Node == wrapper)
                     {
                         return;
                     }
                     item = item.Parent as CsgNodeTreeViewItem;
                 }
                 if (parent.RemoveChild(wrapper))
                 {
                     if (!Group.AddChild(wrapper))
                     {
                         parent.AddChild(wrapper);
                     }
                 }
                 IsSelected = true;
             }
         }
         else if (e.Effects == DragDropEffects.Link)
         {
             if (wrapper != null)
             {
                 Group.AddChild(wrapper);
                 IsSelected = true;
             }
         }
     }
     base.OnDrop(e);
 }