public bool MoveToFirstChild() { if (_current.Items == null || _current.Items.Count == 0) { return(false); } _current = _current.Items[0]; return(true); }
public bool MoveToParent() { if (_current.Parent != null) { _current = _current.Parent; return(true); } return(false); }
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); }
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); }
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); }
public TreeNavigator(TreeItem tree) { _tree = Init(tree, null); _current = _tree; }