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