0

我有 listbox1 - 它的数据源是一列(产品名称)。

所以我在列表框中有一个MultiSelection选项。

我试图为MessageBox我选择的所有选项制作一个,这是代码:

  foreach (object selectedItem in listBox1.SelectedItems)
  {
       MessageBox.Show((selectedItem.ToString() + Environment.NewLine));
   }

问题是我得到了这个值System.Data.DataRowView

4

2 回答 2

3

你如何填充列表框(即数据源到底是什么)?

根据您的评论,我会说一个 DataView (其中包含 DataRowView ...)

因此,您只需要将inSelectedItem转换DataRowView为从该 DataRowView 中获取值:

foreach (object selectedItem in listBox1.SelectedItems)
{
     DataRowView dr = (DataRowView)selectedItem;
     String result = dr["productname"].ToString;
     MessageBox.Show(result + Environment.NewLine);
}

可能会关注这篇文章的 VB.Net 开发人员也可能对此感兴趣。

于 2013-05-27T18:18:18.180 回答
-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);
于 2013-05-27T18:14:52.203 回答