В моем приложении у меня есть клиент, у которого может быть несколько местоположений. Когда вы выбираете клиента в моем выпадающем списке, он будет загружать comboboxes в панели flowlayout со всеми его местоположениями.Невозможно установить Combobox SelectedItem, значение
Это мой код для этого:
IEnumerable<locatie> opstapPlaatsen = Database.getOpstapplaatsen(klant.klant_id);
foreach (locatie opstapplaats in opstapPlaatsen)
{
if (opstapPlaatsen.Count() <= 0)
{
}
else
{
ComboBox cbbOpstap = new ComboBox();
cbbOpstap.Width = 200;
cbbOpstap.Height = 20;
cbbOpstap.DataSource = Database.getLocaties();
cbbOpstap.ValueMember = "locatie_id";
cbbOpstap.SelectedValue = opstapplaats.locatie_id;
cbbOpstap.SelectedItem = opstapplaats;
cbbOpstap.DisplayMember = "FullAdress";
flpOpstapplaats.Controls.Add(cbbOpstap);
}
}
Моя проблема заключается в том, что я не могу установить SelectedItem или/и значение. Когда я смотрю с точками останова, есть значение в opstapplaats.locatie_id
(правильный), но SelectedValue
остается null
.
Я делаю что-то подобное вне цикла, а для combobox не создается в коде, и он работает там.
Я понятия не имею, что причиной этого? Это потому, что это в foreach, потому что я использовал его раньше из foreach, а затем он работал.
Спасибо, Томас.
Редактировать: эта проблема еще не решена, и я понятия не имею, как ее решить.
Редактировать: эта проблема, кажется, решена. См. Принятый ответ.
Разделяет ли 'DisplayMember' и' ValueMember' перед установкой 'DataSource'? – V4Vendetta
Просто попробовал, ничего не изменилось. Спасибо хоть! :) – Schoof
Не связано с проблемой, но 'opstapPlaatsen.Count() <= 0' условная проверка не требуется, я думаю, поскольку она не будет в цикле в первую очередь. – V4Vendetta