Beispiel #1
0
 public bool MoveToFirstChild()
 {
     if (_current.Items == null || _current.Items.Count == 0)
     {
         return(false);
     }
     _current = _current.Items[0];
     return(true);
 }
Beispiel #2
0
        public bool MoveToParent()
        {
            if (_current.Parent != null)
            {
                _current = _current.Parent;
                return(true);
            }

            return(false);
        }
Beispiel #3
0
 private bool MoveTo(NavigatorTreeItem node, Func <TreeItem, bool> comparer)
 {
     if (comparer(node.Current))
     {
         _current = node;
         return(true);
     }
     foreach (var item in node.Items)
     {
         if (MoveTo(item, comparer))
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #4
0
        private NavigatorTreeItem Init(TreeItem current, NavigatorTreeItem parent)
        {
            var tree = new NavigatorTreeItem
            {
                Current = current,
                Parent  = parent,
            };

            if (current.Items != null)
            {
                foreach (var item in current.Items)
                {
                    tree.Items.Add(Init(item, tree));
                }
            }
            return(tree);
        }
Beispiel #5
0
        public bool MoveToChild(Func <TreeItem, bool> comparer)
        {
            if (_current.Items == null || _current.Items.Count == 0)
            {
                return(false);
            }

            foreach (var item in _current.Items)
            {
                if (comparer(item.Current))
                {
                    _current = item;
                    return(true);
                }
            }

            return(true);
        }
Beispiel #6
0
 public TreeNavigator(TreeItem tree)
 {
     _tree    = Init(tree, null);
     _current = _tree;
 }