private void ResetDictionariesGrid(OptionsSettingsSmartContext settings = null)
        {
            if (null == settings)
            {
                settings = _settings;
            }

            var availableDictionaries  = SpellChecker.GetAllAvailableDictionaryNames();
            var ignoreDictionaries     = new HashSet <string>(settings.EnumEntryIndices <SpellCheckSettings, string, byte>(x => x.IgnoreDictionaries));
            var spellCheckDictionaries = new HashSet <string>(settings.EnumEntryIndices <SpellCheckSettings, string, byte>(x => x.SpellCheckDictionaries));

            dataGridViewDictList.Rows.Clear();
            foreach (var dictionary in availableDictionaries.OrderBy(x => x, StringComparer.OrdinalIgnoreCase))
            {
                var isSpellCheck = spellCheckDictionaries.Contains(dictionary);
                var isIgnore     = ignoreDictionaries.Contains(dictionary);
                dataGridViewDictList.Rows.Add(dictionary, isSpellCheck, isIgnore);
            }
            dataGridViewDictList.Update();
            dataGridViewDictList.Invalidate();
        }