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); }
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); }