我有listbox1 - 它的数据源是一列(productname)。
所以我在列表框中有一个MultiSelection
选项。
我试图为我选择的所有选项创建MessageBox
,然后是代码:
foreach (object selectedItem in listBox1.SelectedItems)
{
MessageBox.Show((selectedItem.ToString() + Environment.NewLine));
}
问题在于我获取此值而不是System.Data.DataRowView
答案 0 :(得分:3)
如何填充列表框(即什么是数据源)?
从你的评论中我会说一个DataView(并且包含DataRowView ......)
所以你只需要将SelectedItem
强制转换为DataRowView
以获取此DataRowView的值:
foreach (object selectedItem in listBox1.SelectedItems)
{
DataRowView dr = (DataRowView)selectedItem;
String result = dr["productname"].ToString;
MessageBox.Show(result + Environment.NewLine);
}
可能属于这篇文章的VB.Net开发人员也可能对this感兴趣。
答案 1 :(得分:-1)
尝试使用此更改
ListBoxItem lbi ;
String myStr ;
for (int i =0; i <= listbox1.selecteditems.count-1 ; i++)
{
lbi = (ListBoxItem)(listBox1.ItemContainerGenerator.ContainerFromIndex(i));
myStr += lbi + Environment.NewLine);
}
MessageBox.Show(myStr);