Esempio n. 1
0
        internal AmlNavigator(IReadOnlyElement elem)
        {
            var parents = new List <IReadOnlyElement>()
            {
                elem
            };
            var curr = elem;

            while (curr.Parent.Exists && !string.IsNullOrEmpty(curr.Parent.Name))
            {
                parents.Add(curr.Parent);
                curr = curr.Parent;
            }
            parents.Reverse();

            _stack.Push(new ElementList(parents[0]));
            _stack.Peek().MoveNext();
            for (var i = 1; i < parents.Count; i++)
            {
                var list = new ElementList(parents[i - 1].Elements());
                list.MoveTo(parents[i]);
                _stack.Push(list);
            }
            SetCurrent(_stack.Peek().Current);
        }