tanghai 11 лет назад
Родитель
Сommit
cffcb92e39

+ 4 - 1
CSharp/App/Modules/Tree/BehaviorTreeView.xaml.cs

@@ -183,7 +183,10 @@ namespace Tree
 			}
 			var item = (FrameworkElement)sender;
 			var moveToNode = item.DataContext as TreeNodeViewModel;
-
+			if (this.moveFromNode.Num == moveToNode.Num)
+			{
+				return;
+			}
 			this.ViewModel.MoveToNode(this.moveFromNode, moveToNode);
 		}
 	}

+ 19 - 0
CSharp/App/Modules/Tree/BehaviorTreeViewModel.cs

@@ -80,6 +80,25 @@ namespace Tree
 
 		public void MoveToNode(TreeNodeViewModel from, TreeNodeViewModel to)
 		{
+			if (from.IsFolder)
+			{
+				this.UnFold(from);
+			}
+
+			// from节点不能是to节点的父级节点
+			TreeNodeViewModel tmpNode = to;
+			while (tmpNode != null)
+			{
+				if (tmpNode.IsRoot)
+				{
+					break;
+				}
+				if (tmpNode.Num == from.Num)
+				{
+					return;
+				}
+				tmpNode = tmpNode.Parent;
+			}
 			from.Parent.Children.Remove(from);
 			to.Children.Add(from);
 			from.Parent = to;