public override void LoadSettingsFromStorage() { // Read setting but set to null if it doesn't exist Func <string, string, T?> readProp <T>(Func <string, string, T> readFn) where T : struct { return((string collection, string prop) => { try { return readFn("Rewrap\\" + collection, prop); } catch { return null; } }); } var readInt = readProp(Store.GetInt32); var readBool = readProp(Store.GetBoolean); Store.CreateCollection("Rewrap\\*"); GlobalOptions = new GlobalOptionsGroup() { WrappingColumn = readInt("*", "wrappingColumn"), WholeComment = Store.GetBoolean("Rewrap\\*", "wholeComment", true), DoubleSentenceSpacing = Store.GetBoolean("Rewrap\\*", "doubleSentenceSpacing", false), Reformat = Store.GetBoolean("Rewrap\\*", "reformat", false), }; (int?, OptionsGroup) readGroup(string name) { return( readInt(name, "index"), new OptionsGroup(name.Split(',').Select(s => s.Trim())) { WrappingColumn = readInt(name, "wrappingColumn"), WholeComment = readBool(name, "wholeComment"), DoubleSentenceSpacing = readBool(name, "doubleSentenceSpacing"), Reformat = readBool(name, "reformat"), } ); } OptionsGroups = Store.GetSubCollectionNames("Rewrap") .Where(name => name != "*") .Select(readGroup) .OrderBy(indexAndGroup => indexAndGroup.Item1) .Select(indexAndGroup => indexAndGroup.Item2) .ToList(); if (ChildControl != null) { ChildControl.SetOptions(GlobalOptions, OptionsGroups); } }
public DesignViewModel() : base() { GlobalOptions = new GlobalOptionsGroup(); OptionsGroups = new ObservableCollection <OptionsGroup>() { new OptionsGroup(new String[] { "C#", "JavaScript", "C#", "JavaScript", "C#", "JavaScript", "C#", "JavaScript", "C#", "JavaScript", "C#", "JavaScript", }) { WrappingColumn = null, WholeComment = null, DoubleSentenceSpacing = true, Reformat = false, }, }; LanguagesPicker = new LanguagesPicker( null, new List <LanguageSelection>() { new LanguageSelection() { Name = "AutoHotkey", Selected = false }, new LanguageSelection() { Name = "Basic", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = true }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, new LanguageSelection() { Name = "C/C++", Selected = false }, } ); }
// Load options into this control public void SetOptions(GlobalOptionsGroup globalOptions, List <OptionsGroup> optionsGroups) { Model.GlobalOptions = globalOptions; Model.OptionsGroups = new ObservableCollection <OptionsGroup>(optionsGroups); }