private void EnsureExtensionFiltersExist(CheckComboBoxControl.CheckedComboBox cb) { if (cb.CheckedItems.Count < 1) { cb.SetItemChecked(0, true); } }
private void BuildCheckedComboBoxItems(CheckComboBoxControl.CheckedComboBox cb) { var selected = cb.CheckedItems.OfType <CheckComboBoxControl.CheckedComboBoxItem>().ToArray(); cb.Items.Clear(); var extensions = new HashSet <string> { "*.*" }; try { var dirNfo = new DirectoryInfo(txtDir.Text); if (dirNfo.Exists) { foreach (var filepath in Directory.EnumerateFiles(txtDir.Text, "*", SearchOption.AllDirectories)) { var ext = Path.GetExtension(filepath).ToLower(); if (string.IsNullOrEmpty(ext)) { continue; } extensions.Add("*" + ext); } } } catch { } cb.Items.AddRange(extensions.OrderBy(x => x).Select((x, i) => new CheckComboBoxControl.CheckedComboBoxItem(x, i)).ToArray()); foreach (var item in cb.Items.OfType <CheckComboBoxControl.CheckedComboBoxItem>().Where(x => selected.Select(y => y.Name).Contains(x.Name)).ToArray()) { cb.SetItemChecked(item, true); } EnsureExtensionFiltersExist(cb); }