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, Action<ISavedPresetEntry> action) { var group = new HierarchicalGroup("", UserPresetsControl.GroupPresets(presetsKey)); var result = new HierarchicalItemsView(o => { action((ISavedPresetEntry)o); }, group, false); return result; }
public void InitializeQuickDrivePresets() { if (QuickDrivePresets == null) { QuickDrivePresets = _helper.Create(QuickDrive.PresetableKeyValue, p => { QuickDrive.RunPreset(p.Filename, SelectedObject, SelectedObject.SelectedSkin?.Id); }); } }
public void InitializeQuickDrivePresets() { if (QuickDrivePresets == null) { QuickDrivePresets = _helper.Create(QuickDrive.PresetableKeyValue, p => { QuickDrive.RunPreset(p.Filename, track: SelectedTrackConfiguration); }); } }
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 HierarchicalItemsView Create(string presetsKey, Action<ISavedPresetEntry> action, string displayName = "") { var group = new HierarchicalGroup(displayName, UserPresetsControl.GroupPresets(presetsKey)); var result = new HierarchicalItemsView(o => { action((ISavedPresetEntry)o); }, group, false); var handler = new EventHandler((sender, e) => { group.ReplaceEverythingBy(UserPresetsControl.GroupPresets(presetsKey)); }); PresetsManager.Instance.Watcher(presetsKey).Update += handler; _presetsHandlersToRemove.Add(new PresetsHandlerToRemove { Key = presetsKey, Handler = handler }); return result; }