public MainWindowControlViewModel()
        {
            ThrowIfNotOnUIThread();

            var ss = ThreadHelper.JoinableTaskFactory.Run(() => OptionsHelper.GetWritableSettingsStoreAsync());

            if (ss.TryGetBoolean(
                    OptionsHelper.GeneralSettingsCollectionName,
                    nameof(UseExtraContrastSuggestions),
                    out var useExtraContrastSuggestions))
            {
                UseExtraContrastSuggestions = useExtraContrastSuggestions;
            }

            PropertyChanged += OnPropertyChanged;

            EditForegroundCommand     = new RelayCommand <IList>(OnEditForeground);
            EditBackgroundCommand     = new RelayCommand <IList>(OnEditBackground);
            ToggleIsBoldCommand       = new RelayCommand <IList>(OnToggleIsBold);
            ResetToDefaultsCommand    = new RelayCommand <IList>(OnResetToDefaults);
            ResetAllToDefaultsCommand = new RelayCommand(OnResetAllToDefaults);

            foreach (var item in ClassificationProvider.GridItems)
            {
                ClassificationGridItems.Add(item);
            }

            ClassificationGridView        = CollectionViewSource.GetDefaultView(ClassificationGridItems);
            ClassificationGridView.Filter = o => FilterClassification((GridItem)o);
            ClassificationGridView.SortDescriptions.Clear();
            ClassificationGridView.SortDescriptions.Add(new SortDescription(nameof(GridItem.DefinitionLocalizedName), ListSortDirection.Ascending));

            (FontFamily, FontSize) = FontsAndColorsHelper.GetEditorFontInfo();
        }
        public MainWindowControlViewModel()
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            var settingsStore = ThreadHelper.JoinableTaskFactory.Run(() => OptionsHelper.GetWritableSettingsStoreAsync());

            if (settingsStore.TryGetBoolean(OptionsHelper.GeneralSettingsCollectionName, nameof(UseExtraContrastSuggestions), out var useExtraContrastSuggestions))
            {
                UseExtraContrastSuggestions = useExtraContrastSuggestions;
            }
            else
            {
                settingsStore.WriteBoolean(OptionsHelper.GeneralSettingsCollectionName, nameof(UseExtraContrastSuggestions), UseExtraContrastSuggestions);
            }

            ClassificationGridView        = CollectionViewSource.GetDefaultView(ClassificationGridItems);
            ClassificationGridView.Filter = o => FilterClassification((ClassificationGridItem)o);

            PropertyChanged += OnPropertyChanged;

            EditForegroundCommand = new RelayCommand <ClassificationGridItem>(OnEditForeground);
            EditBackgroundCommand = new RelayCommand <ClassificationGridItem>(OnEditBackground);
            ToggleIsBoldCommand   = new RelayCommand <ClassificationGridItem>(OnToggleIsBold);

            ResetToDefaultsCommand         = new RelayCommand <ClassificationGridItem>(OnResetToDefaults);
            UseForegroundSuggestionCommand = new RelayCommand <ClassificationGridItem>(OnUseForegroundSuggestion);

            ResetAllToDefaultsCommand          = new RelayCommand(OnResetAllToDefaults);
            UseAllForegroundSuggestionsCommand = new RelayCommand(OnUseAllForegroundSuggestions);
            ExportThemeCommand    = new RelayCommand(OnExportTheme);
            ImportThemeCommand    = new RelayCommand(OnImportTheme);
            LoadThemeCommand      = new RelayCommand <string>(OnLoadTheme);
            FindMoreThemesCommand = new RelayCommand(OnFindMoreThemes);

            foreach (var classificationItem in ClassificationProvider.GridItems)
            {
                ClassificationGridItems.Add(classificationItem);
            }

            UpdateContrastWarnings();

            ClassificationGridView.SortDescriptions.Clear();
            ClassificationGridView.SortDescriptions.Add(new SortDescription(nameof(ClassificationGridItem.Classification), ListSortDirection.Ascending));

            (FontFamily, FontSize) = FontsAndColorsHelper.GetEditorFontInfo();
        }