private void ToggleLibraryItem(LibraryItemViewModel libraryItem, ExpansionFlag expansion)
        {
            bool expanded = expansion == ExpansionFlag.DeepExpanded;

            foreach (LibraryItemViewModel item in libraryItem.Children)
            {
                item.IsExpanded = expanded;
                if (item.Children.Count > 0)
                {
                    ToggleLibraryItem(item, expansion);
                }
                if (expanded) // expand overloaded method
                {
                    ExpandChildItem(item);
                }
            }
        }
        private void ToggleLibrary(bool expand)
        {
            if (false != expand)
            {
                if (currentExpansion == ExpansionFlag.Collapsed)
                {
                    currentExpansion = ExpansionFlag.ShallowExpanded;
                }
                else if (currentExpansion == ExpansionFlag.ShallowExpanded)
                {
                    currentExpansion = ExpansionFlag.DeepExpanded;
                }
                else
                {
                    return;
                }
            }
            else
            {
                int level = GetExpansionLevel();

                if (level > 2)//(currentExpansion == ExpansionFlag.DeepExpanded)
                {
                    currentExpansion = ExpansionFlag.ShallowExpanded;
                }
                else //if (currentExpansion == ExpansionFlag.ShallowExpanded)
                {
                    currentExpansion = ExpansionFlag.Collapsed;
                }
                //else
                //    return;
            }

            foreach (LibraryItemViewModel item in libraryTree.RootItems)
            {
                item.IsExpanded = currentExpansion != ExpansionFlag.Collapsed;
                if (item.Children.Count > 0)
                {
                    ToggleLibraryItem(item, currentExpansion);
                }
                if (item.IsExpanded)    // expand overloaded method
                {
                    ExpandChildItem(item);
                }
            }
        }