我正在构建一个GUI来使用列表框中的值更新数据库。我已经连接到服务器和数据库,我将它放入正确的列中。我只是不能让它显示我选择的多个值。我对此很陌生。
string colors = "";
StringBuilder sb = new StringBuilder();
foreach (var items in listboxColor.SelectedItems)
{
sb.Append(listboxColor.SelectedItem + ", ");
}
colors = sb.ToString();
这是一个例子:
Example ListBox (** is the selected item)
**Red**
Blue
**Green**
Yellow
Orange
**Purple**
--------------------------
Output:
Red, Red, Red
我希望它是这样的:
Output:
Red, Green, Purple
谢谢!如果您需要更多信息,请告诉我。
答案 0 :(得分:2)
问题在于foreach中的界限。
您正在使用pickerController.navigationBar.tintColor = UIColor.blueColor()
获取具有焦点的所选项目(因此始终相同)。
这是正确的代码:
listboxColor.SelectedItem
答案 1 :(得分:2)
事实上,“string.Join”要简单得多。
string.Join(", ", listboxColor.SelectedItems.Cast<object>())
由于逗号,使用“foreach”很复杂。
StringBuilder sb = new StringBuilder();
bool isFollowing = false;
foreach (var item in listboxColor.SelectedItems)
{
if (isFollowing)
{
sb.Append(", ");
}
else
{
isFollowing = true;
}
sb.Append(item);
}
string colors = sb.ToString();
答案 2 :(得分:1)
如果您只有string
作为列表框项,则可以执行此操作。
string colors = "";
StringBuilder sb = new StringBuilder();
foreach (string item in lbOwner.SelectedItems)
{
sb.Append(item + ", ");
}
colors = sb.ToString();
如果ListBoxItem
是一个对象,则需要将其转换为相应类型并获取所需的属性/字段。
ex..
foreach (object item in lbOwner.SelectedItems)
{
sb.Append((item as type1).Prop1 + ", ");
}