Я использую System.Windows.Forms.ComboBox, и я получаю какое-то странное неожиданное поведение. В C# я динамически добавляю несколько comboBoxes в свою форму и привязываю их к списку. Единственными полями, которые я устанавливаю, являются DataSource, ValueMember и DisplayMember. По какой-то причине, после привязки к списку, выбирается первый элемент. Я не могу понять, что происходит.combobox автоматически выбирает значение
Мой код выглядит следующим образом:
Control c = new System.Windows.Forms.ComboBox();
Перебор всех моих управления,
if (c?.GetType() == typeof (ComboBox))
{
BindComboBox((ComboBox) c);
}
private void BindComboBox(ComboBox sender)
{
DataTable table = DataGateway.GetTables(1);
sender.DataSource = table;
sender.ValueMember = "ID";
sender.DisplayMember = "Name";
//sender.SelectedIndex = -1; I tried with this and without this
}
Я также попробовал второй метод, но то же самое происходит -
private void BindComboBox(ComboBox sender)
{
List<string> hiStrings = new List<string>() {"hi", "hello", "whats up"};
sender.DataSource = hiStrings;
}
Я не могу дублировать такое поведение, когда я установил 'sender.SelectedIndex = -1' я получаю пустой выпадающий с 3 значения в раскрывающемся списке. Вы делаете что-то позже, после цикла. –
Я просто установил элемент управления Имя, и я добавлю этот элемент управления в элемент layoutedcontrolItem devex, а затем в макет LayoutControlGroup, а затем в devex LayoutControl –
извините, не уверен, что я могу предложить что-нибудь еще. Я попытался добавить элементы управления в flowLayoutPanel, а затем перешел через элементы управления к методу BindCombobox. и даже попытался создать контроль и привязать его перед добавлением в flp. Оба поместили пустые комбобокс с элементами в коллекции предметов без заминки. Это метод method2. Я настрою DS и попробую его таким образом, но я чувствую, что результаты будут одинаковыми. SelectedIndex-1 должен работать. –