private bool ReselectPresetOnExpanded(PresetFolderViewModel presetFolderViewModel)
        {
            if (!presetFolderViewModel.IsExpanded)
            {
                return(false);
            }

            if (presetFolderViewModel.Items.Items.Contains(this.presetsService.SelectedPreset))
            {
                this.presetsService.SelectedPreset.IsSelected = true;
                return(true);
            }

            foreach (var subFolder in presetFolderViewModel.SubFolders.Items)
            {
                if (this.ReselectPresetOnExpanded(subFolder))
                {
                    return(true);
                }
            }

            return(false);
        }
        public void AddSubfolder(PresetFolderViewModel subfolderViewModel)
        {
            this.SubFolders.Add(subfolderViewModel);
            subfolderViewModel.Parent = this;

            int insertionIndex;

            // Add in the right place.
            for (insertionIndex = 0; insertionIndex <= this.AllItems.Count; insertionIndex++)
            {
                // If at the end, add there.
                if (insertionIndex == this.AllItems.Count)
                {
                    break;
                }

                // If we made it to the presets, add there at end of folder list.
                object item   = this.AllItems.Items.ElementAt(insertionIndex);
                var    preset = item as PresetViewModel;
                if (preset != null)
                {
                    break;
                }

                // If the name compares to less than this folder name, (and we are not built-in) add here.
                var folder = (PresetFolderViewModel)item;
                if (!this.IsBuiltIn && string.Compare(subfolderViewModel.Name, folder.Name, StringComparison.CurrentCultureIgnoreCase) < 0)
                {
                    break;
                }
            }

            this.AllItems.Insert(insertionIndex, subfolderViewModel);

            this.IsExpanded = true;
        }
 public void RemoveSubfolder(PresetFolderViewModel subFolderViewModel)
 {
     this.SubFolders.Remove(subFolderViewModel);
     this.AllItems.Remove(subFolderViewModel);
 }