コード例 #1
0
ファイル: Node.cs プロジェクト: justdude/OrdersManager
        private static Node GetSelected(Node baseNode)
        {
            if (baseNode == null) return null;
            if (baseNode.isSelected )
                return baseNode;

            if (baseNode.Children!=null)
                foreach (Node node in baseNode.Children)
                {
                    if (node != null && node.IsSelected)
                        return node;
                    if (node.Children != null)
                    {
                        var temp = Node.GetSelected(node);
                        if (temp != null) return temp;
                    }
                }
            return null;
        }
コード例 #2
0
ファイル: Node.cs プロジェクト: justdude/OrdersManager
        private static Node RemoveSelected(Node baseNode,Node target)
        {
            if (baseNode == null) return null;

            if (baseNode.Children != null)
            {
                if (baseNode.Children.Remove(target))
                    return null;

                foreach (Node node in baseNode.Children)
                {

                    if (node.Children != null)
                        return Node.RemoveSelected(node, target);
                }
            }
            return null;
        }
コード例 #3
0
ファイル: Node.cs プロジェクト: justdude/OrdersManager
 public static void RemoveRecursive(ObservableCollection<Node> nodes, Node target)
 {
     bool result = nodes.Remove(target);
     if (!result)
     {
         foreach(var node in nodes)
             RemoveSelected(node,target);
     }
 }