Microsoft.Silverlight.Testing.Controls.TreeViewItem.FindPreviousFocusableItem C# (CSharp) Method

FindPreviousFocusableItem() private method

Find the previous focusable TreeViewItem above this item.
private FindPreviousFocusableItem ( ) : ItemsControl
return System.Windows.Controls.ItemsControl
        private ItemsControl FindPreviousFocusableItem()
        {
            ItemsControl parent = ParentItemsControl;
            if (parent == null)
            {
                return null;
            }

            // Get the index of the current item relative to its siblings
            int index = parent.ItemContainerGenerator.IndexFromContainer(this);

            // Walk the previous siblings of the item to find a focusable item
            while (index-- > 0)
            {
                // Get the sibling
                TreeViewItem item = parent.ItemContainerGenerator.ContainerFromIndex(index) as TreeViewItem;
                if (item != null && item.IsEnabled)
                {
                    // Get the last focusable descendent of the sibling
                    TreeViewItem last = item.FindLastFocusableItem();
                    if (last != null)
                    {
                        return last;
                    }
                }
            }

            return parent;
        }