Задать вопрос
@FlashDok

Как реализовать очистку combobox?

На форме есть 3 combobox
У каждого combobox событие SelectIndexChange привязано к comboBoxMySqlFilter

При работе с одним и тем же combobox всё видёт себя "нормально".
Но если например в первом combobox выбрано уже значение, и теперь выбираем во втором combobox, то для всех combobox сработает

mapping.comboBox.Text = null;

Что заметил при работе с одним и тем же combobox foreach делает 3 итерации, если далее работать с другим combobox foreach делает 9 итераций, и после все combobox пустые

private void comboBoxMySqlFilter(object sender, EventArgs e)
        {
            
            ComboBox comboBox = (ComboBox)sender;
            string selectedValue = comboBox.SelectedItem?.ToString();

            List<(ComboBox comboBox, string propertyName)> filterMappingsMySql = new List<(ComboBox, string)>
            {
                (cbFindServerMySql, "server"),
                (cbFindModelMySql, "model"),
                (cbFindOperatorMySql, "mobileoperator"),
            };

            foreach (var mapping in filterMappingsMySql)
            {
                if (sender is ComboBox cb && cb == mapping.comboBox)
                {
                    List<deviceMySql> filteredDevices = deviceMySql.dgvDevices
                        .Where(d => d.GetType().GetProperty(mapping.propertyName)?
                        .GetValue(d)?.ToString() == cb.Text)
                        .ToList();
                    dgvMySql.DataSource = filteredDevices;
                }
                else
                {
                    mapping.comboBox.Text = null;
                }
            }
        }


Видео
https://www.youtube.com/watch?v=XR5rkMBP6VM
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы