예제 #1
0
        public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos)
        {
            TestDragging.FooDragData fooDragData      = DragAndDrop.GetGenericData("FooDragging") as TestDragging.FooDragData;
            FooTreeViewItem          fooTreeViewItem  = targetItem as FooTreeViewItem;
            FooTreeViewItem          fooTreeViewItem2 = parentItem as FooTreeViewItem;

            if (fooTreeViewItem2 != null && fooDragData != null)
            {
                bool flag = this.ValidDrag(parentItem, fooDragData.m_DraggedItems);
                if (perform && flag)
                {
                    List <BackendData.Foo> draggedItems = (from x in fooDragData.m_DraggedItems
                                                           where x is FooTreeViewItem
                                                           select((FooTreeViewItem)x).foo).ToList <BackendData.Foo>();
                    int[] selectedIDs = (from x in fooDragData.m_DraggedItems
                                         where x is FooTreeViewItem
                                         select((FooTreeViewItem)x).id).ToArray <int>();
                    this.m_BackendData.ReparentSelection(fooTreeViewItem2.foo, fooTreeViewItem.foo, draggedItems);
                    this.m_TreeView.ReloadData();
                    this.m_TreeView.SetSelection(selectedIDs, true);
                }
                return((!flag) ? DragAndDropVisualMode.None : DragAndDropVisualMode.Move);
            }
            return(DragAndDropVisualMode.None);
        }
예제 #2
0
        public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos)
        {
            TestDragging.FooDragData genericData      = DragAndDrop.GetGenericData("FooDragging") as TestDragging.FooDragData;
            FooTreeViewItem          fooTreeViewItem1 = targetItem as FooTreeViewItem;
            FooTreeViewItem          fooTreeViewItem2 = parentItem as FooTreeViewItem;

            if (fooTreeViewItem2 == null || genericData == null)
            {
                return(DragAndDropVisualMode.None);
            }
            bool flag = this.ValidDrag(parentItem, genericData.m_DraggedItems);

            if (perform && flag)
            {
                List <BackendData.Foo> list = genericData.m_DraggedItems.Where <TreeViewItem>((Func <TreeViewItem, bool>)(x => x is FooTreeViewItem)).Select <TreeViewItem, BackendData.Foo>((Func <TreeViewItem, BackendData.Foo>)(x => ((FooTreeViewItem)x).foo)).ToList <BackendData.Foo>();
                int[] array = genericData.m_DraggedItems.Where <TreeViewItem>((Func <TreeViewItem, bool>)(x => x is FooTreeViewItem)).Select <TreeViewItem, int>((Func <TreeViewItem, int>)(x => x.id)).ToArray <int>();
                this.m_BackendData.ReparentSelection(fooTreeViewItem2.foo, fooTreeViewItem1.foo, list);
                this.m_TreeView.ReloadData();
                this.m_TreeView.SetSelection(array, true);
            }
            return(flag ? DragAndDropVisualMode.Move : DragAndDropVisualMode.None);
        }