listbox selected item give me “ System.Data.DataRo

2019-01-29 12:18发布

问题:

I have listbox1 - its datasource is a column (productname).

so i have in the listbox a MultiSelection option.

and im trying to make a MessageBox for all the option i selected and this the code:

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

the problem is that im getting this value insteadSystem.Data.DataRowView

回答1:

How do you populate the listbox (ie what is exactly the datasource)?

From your comment I would say a DataView (and wich contains DataRowView...)

So you just need to cast the SelectedItem into DataRowView in order to get a value from this DataRowView:

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

The VB.Net developers that could fall on this post could also be interested in this.



回答2:

Try to change with this

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);