/// <summary> /// Clears this instance. /// </summary> public void Clear() { if (this.Items.Count == 0 || !this.treeView.MultiSelect) { return; } treeView.BeginUpdate(); while (this.Items.Count > 0) { RadTreeNode node = this.Items[0]; node.Selected = false; } treeView.EndUpdate(true, RadTreeViewElement.UpdateActions.StateChanged); }
protected override void OnPreviewDragDrop(RadDropEventArgs e) { bool isScrollerNode = this.owner.Scroller.Traverser.Current == draggedNode; RadTreeNode newScrollerNode = null; if (isScrollerNode) { newScrollerNode = draggedNode.NextNode; if (newScrollerNode == null) { newScrollerNode = draggedNode.PrevNode; } } TreeNodeElement targetNodeElement = e.HitTarget as TreeNodeElement; RadTreeViewElement targetTreeView = targetNodeElement == null ? e.HitTarget as RadTreeViewElement : targetNodeElement.TreeViewElement; List <RadTreeNode> draggedNodes = this.GetDraggedNodes(draggedNode); bool dragDropBetweenTrees = targetTreeView != this.owner; targetTreeView.BeginUpdate(); if (dragDropBetweenTrees) { this.owner.BeginUpdate(); } if (targetNodeElement != null) { this.PerformDragDrop(e.DropLocation, targetNodeElement, draggedNodes); } else { foreach (RadTreeNode node in draggedNodes) { if (!this.OnDragEnding(DropPosition.AsChildNode, node, null)) { continue; } node.Remove(); targetTreeView.Nodes.Add(node); this.owner.OnDragEnded(new RadTreeViewDragEventArgs(node, null)); } } if (dragDropBetweenTrees) { this.owner.EndUpdate(); } if (isScrollerNode) { this.owner.Scroller.ScrollToItem(newScrollerNode); } targetTreeView.EndUpdate(); targetTreeView.SelectedNode = draggedNode; base.OnPreviewDragDrop(e); }
protected override void OnPreviewDragDrop(RadDropEventArgs e) { base.OnPreviewDragDrop(e); if (this.CancelPreviewDragDrop(e)) { return; } bool flag1 = this.owner.Scroller.Traverser.Current == this.draggedNode; RadTreeNode radTreeNode1 = (RadTreeNode)null; if (flag1) { radTreeNode1 = this.draggedNode.NextNode ?? this.draggedNode.PrevNode; } TreeNodeElement hitTarget = e.HitTarget as TreeNodeElement; RadTreeViewElement radTreeViewElement = hitTarget == null ? e.HitTarget as RadTreeViewElement : hitTarget.TreeViewElement; List <RadTreeNode> selectedNodes = this.GetSelectedNodes(this.draggedNode); List <RadTreeNode> draggedNodes = this.GetDraggedNodes(this.draggedNode); bool flag2 = radTreeViewElement != null && radTreeViewElement != this.owner; radTreeViewElement?.BeginUpdate(); if (flag2) { this.owner.BeginUpdate(); } if (hitTarget != null && hitTarget.Data != null) { this.PerformDragDrop(e.DropLocation, hitTarget, draggedNodes); } else if (radTreeViewElement != null) { bool isCopyingNodes = this.IsCopyingNodes; foreach (RadTreeNode radTreeNode2 in draggedNodes) { RadTreeNode radTreeNode3 = radTreeNode2; if (this.OnDragEnding(DropPosition.AsChildNode, radTreeNode3, (RadTreeNode)null)) { if (isCopyingNodes) { radTreeNode3 = this.CreateTreeNode(radTreeNode3); } else { radTreeNode3.Remove(); } radTreeViewElement.Nodes.Add(radTreeNode3); this.owner.OnDragEnded(new RadTreeViewDragEventArgs(radTreeNode3, (RadTreeNode)null)); } } } else if (draggedNodes.Count > 0) { this.owner.OnDragEnded(new RadTreeViewDragEventArgs(draggedNodes[0], (RadTreeNode)null)); } if (flag2) { this.owner.EndUpdate(); } if (flag1) { this.owner.Scroller.ScrollToItem(radTreeNode1); } if (radTreeViewElement == null) { return; } radTreeViewElement.EndUpdate(); radTreeViewElement.SelectedNode = this.draggedNode; foreach (RadTreeNode radTreeNode2 in draggedNodes) { radTreeNode2.Selected = true; } foreach (RadTreeNode radTreeNode2 in selectedNodes) { radTreeNode2.Selected = true; } }