首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表框选中的项目给我“System.Data.DataRowView”,C# winforms

列表框选中的项目给我“System.Data.DataRowView”,C# winforms
EN

Stack Overflow用户
提问于 2013-05-28 01:47:16
回答 2查看 10.9K关注 0票数 0

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

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

我尝试为我选择的所有选项创建一个MessageBox,这是代码:

代码语言:javascript
复制
  foreach (object selectedItem in listBox1.SelectedItems)
  {
       MessageBox.Show((selectedItem.ToString() + Environment.NewLine));
   }

问题是我得到的是这个值,而不是System.Data.DataRowView

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-28 02:18:18

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

根据您的评论,我认为是一个DataView (并且包含DataRowView...)

因此,您只需将SelectedItem转换为DataRowView,以便从该DataRowView中获得值:

代码语言:javascript
复制
foreach (object selectedItem in listBox1.SelectedItems)
{
     DataRowView dr = (DataRowView)selectedItem;
     String result = dr["productname"].ToString;
     MessageBox.Show(result + Environment.NewLine);
}

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

票数 3
EN

Stack Overflow用户

发布于 2013-05-28 02:14:52

试着用这个来改变

代码语言:javascript
复制
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);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16778180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档