예제 #1
0
        public void ForEachElementInTree_BreadthFirst(IUIElementAction action)
        {
            LinkedList <UIElement>     searchList = new LinkedList <UIElement>(new UIElement[] { this });
            LinkedListNode <UIElement> current;

            while ((current = searchList.First) != null)
            {
                action.Execute(current.Value);
                searchList.RemoveFirst();
                current.Value.AddChildren(searchList);
            }
        }
예제 #2
0
        public void ForEachElementInTree_DepthFirst(IUIElementAction action)
        {
            Stack <UIElement> searchStack = new Stack <UIElement>();
            IList <UIElement> elementList = new List <UIElement>();

            searchStack.Push(this);
            while (searchStack.Count > 0)
            {
                UIElement current = searchStack.Pop();
                action.Equals(current);
                elementList.Clear();
                current.AddChildren(elementList);
                foreach (UIElement child in elementList)
                {
                    searchStack.Push(child);
                }
            }
        }
예제 #3
0
 public void ForEachElementInTree_DepthFirst(IUIElementAction action)
 {
   Stack<UIElement> searchStack = new Stack<UIElement>();
   IList<UIElement> elementList = new List<UIElement>();
   searchStack.Push(this);
   while (searchStack.Count > 0)
   {
     UIElement current = searchStack.Pop();
     action.Equals(current);
     elementList.Clear();
     current.AddChildren(elementList);
     foreach (UIElement child in elementList)
       searchStack.Push(child);
   }
 }
예제 #4
0
 public void ForEachElementInTree_BreadthFirst(IUIElementAction action)
 {
   LinkedList<UIElement> searchList = new LinkedList<UIElement>(new UIElement[] { this });
   LinkedListNode<UIElement> current;
   while ((current = searchList.First) != null)
   {
     action.Execute(current.Value);
     searchList.RemoveFirst();
     current.Value.AddChildren(searchList);
   }
 }