private void MoveNode(TmNode destinationNode, TmNode oldNode) { if (oldNode != destinationNode) { if (oldNode.Parent == null) { RootNodes.Remove(oldNode); var node = Nodes.Cast<TmTreeNode>().First(n => n.TmNode == oldNode); Nodes.Remove(node); } else oldNode.Delete(); if (destinationNode == null) Add(oldNode); else destinationNode.Add(oldNode); } }