【发布时间】:2012-04-03 18:07:30
【问题描述】:
在我的应用程序中,我有一个可以拥有多个位置的客户。 当您在我的下拉框中选择客户时,它将在 flowlayoutpanel 中加载组合框及其所有位置。
这是我的代码:
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。
我在循环之外做了类似的事情,并且对于不是在代码中创建的组合框,它在那里工作。
我不知道是什么原因造成的?这是因为它在 foreach 中,因为我之前在 foreach 中使用过它,然后它就起作用了。
【问题讨论】:
-
在设置
DataSource之前分配DisplayMember和ValueMember有什么不同吗? -
刚试了一下,没有任何变化。不过谢谢! :)
-
与问题无关,但我认为不需要
opstapPlaatsen.Count() <= 0条件检查,因为它首先不会在循环中。
标签: c# combobox foreach selecteditem selectedvalue