У меня есть ComboBox в приложении Winform, который содержит список регулярных выражений, которые соответствуют форматам date
. Я загружаю ComboBox с помощью Dictionary, поэтому я могу отобразить пример совпадающего шаблона и иметь фактическое регулярное выражение как SelectedValue
.ComboBox Значения элементов переключаются
Dictionary<string, string> datePatternsSource = new Dictionary<string, string>();
datePatternsSource.Add(@"dd-MMM-yy (05-SEP-15)", @"((\d{2})(\-)(\w{3})(\-)(\d{2}))");
datePatternsSource.Add(@"yyyy-MM-dd (2015-09-05)", @"((\d{4})(\-)(\d{2})(\-)(\d{2}))");
datePatternsSource.Add(@"MM/dd/yyyy (09/05/2015)", @"((\d{2})(\/)(\d{2})(\/)(\d{4}))");
datePatternsSource.Add(@"M/d/yyyy (9/5/2015)", @"((\d{1,2})(\/)(\d{1,2})(\/)(\d{4}))");
datePatternsSource.Add(@"yyyy/MM/dd (2015/09/05)", @"((\d{4})(\/)(\d{2})(\/)(\d{2}))");
cboDatePatterns.DisplayMember = "Key";
cboDatePatterns.ValueMember = "Value";
cboDatePatterns.DataSource = new BindingSource(datePatternsSource, null);
Проблема в том, что два регулярных выражения не соответствуют соответствующему примеру. Чтобы продемонстрировать, я вызываю метод MessageBox.Show() для отображения свойств combobox.
MessageBox.Show("SelectedItem = " + cboDatePatterns.SelectedItem.ToString() + "\nSelectedValue = " + cboDatePatterns.SelectedValue.ToString());
Как может быть переключен эти значения? Три из пяти элементов соответствуют правильному. Два из них переключаются.
Я просто использовал ваш код, и он работает без проблем для меня. Нет «переключения» значений ... – Jauch
Действительно ли 'Sorted' соответствует вашему ComboBox? – Andy
Вау ... @ Энди, я меняю Сортировку на истину и смог воспроизвести поведение, указанное веб-червем. Я бы не ожидал, что это произойдет ... Это так и должно быть? – Jauch