На форме есть 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