public HierarchicalGroup CreateGroup(string presetsKey, string displayName = "", string prependWithDefault = null) { Func <IEnumerable <object> > groupPresets = () => { var result = UserPresetsControl.GroupPresets(presetsKey); if (prependWithDefault != null) { var menuItem = new HierarchicalItem { Header = new TextBlock { Text = prependWithDefault, FontStyle = FontStyles.Italic } }; HierarchicalItemsView.SetValue(menuItem, null); result = result.Prepend(menuItem); } return(result); }; var group = new HierarchicalGroup(displayName, groupPresets()); var handler = new EventHandler((sender, e) => { group.ReplaceEverythingBy(groupPresets()); }); PresetsManager.Instance.Watcher(presetsKey).Update += handler; _presetsHandlersToRemove.Add(new PresetsHandlerToRemove { Key = presetsKey, Handler = handler }); return(group); }
public static IEnumerable <object> GroupPresets(string presetsKey, [CanBeNull] Action <ISavedPresetEntry> action) { var group = new HierarchicalGroup("", UserPresetsControl.GroupPresets(presetsKey)); var result = new HierarchicalItemsView(o => { action?.Invoke((ISavedPresetEntry)o); }, group, false); return(result); }
public ViewModel() { Entries = new ChangeableObservableCollection <PresetPerMode>(); Modes = new BetterObservableCollection <Mode>(); AppPresets = new HierarchicalGroup("", UserPresetsControl.GroupPresets(AcSettingsHolder.AppsPresetsKey)); AudioPresets = new HierarchicalGroup("", UserPresetsControl.GroupPresets(AcSettingsHolder.AudioPresetsKey)); VideoPresets = new HierarchicalGroup("", UserPresetsControl.GroupPresets(AcSettingsHolder.VideoPresetsKey)); UpdateModes(); FilesStorage.Instance.Watcher(ContentCategory.PresetsPerModeConditions).Update += OnCategoriesUpdate; Saveable.Initialize(); Entries.CollectionChanged += OnCollectionChanged; Entries.ItemPropertyChanged += OnItemPropertyChanged; }
private HierarchicalGroup Rebuild(string header, [Localizable(false)] string sub, IEnumerable <PresetEntry> presets) { var directory = Path.Combine(ControlsSettings.PresetsDirectory, sub); return(new HierarchicalGroup(header, UserPresetsControl.GroupPresets(presets, directory))); }