C# multiple select listbox selected item text
Well, this is a Winforms
question because an ASP.NET
ListBox has no SelectedItems
property(notice the plural). This is important since a Winforms ListBox
has no ListItems
with Text
and Value
properties like in ASP.NET, instead it's just an Object
.
You've also commented that the datasource of the ListBox
is an anonymous type. You cannot cast it to a strong typed object later.
So my advice is to create a class with your desired properties:
class ListItem {
public String Item { get; set; }
}
Create instances of it instead of using an anonymous type:
var items = (from i in xDoc.Descendants("ITEM")
orderby i.Value
select new ListItem(){ Item = i.Element("FIELDNAME").Value })
.ToList();
Now this works:
foreach (ListItem i in lstFieldNames.SelectedItems)
{
String item = i.Item;
}
Note that my ListItem
class is not the ASP.NET
ListItem
.
user1619768
Updated on June 04, 2022Comments
-
user1619768 almost 2 years
I have a list-box, I want to loop through all the selected items and get each selected items text value.
for (int i = 0; i < lstFieldNames.selectedItems.Count; i++) { string s = lstFieldNames.SelectedItems[i].ToString(); }
the value of s is "{ Item = ADDR }"
I don't need the { Item = }, I just want the text "ADDR".
What am I doing wrong, I tried a few things and nothing seems to work for me.
-
Tim Schmelter over 11 yearsBut this is a winforms question, in ASP.NET there's a Text property in
ListItem
but in Winforms it's just an object. msdn.microsoft.com/en-us/library/… -
user1619768 over 11 yearsI get an error when trying lstFieldNames.SelectedItems[i].Text; 'object' does not contain a definition for 'Text'
-
user1619768 over 11 yearsdo i need to add a directive? I get the error message - The type or namespace name "ListItem" could not be found(are you missing a using directive or an assembly reference?)
-
user1619768 over 11 yearsnope this is not working either. I get an error - Unable to cast object of type'<>f_AnonymousType0'1[System.String]' to type 'System.String'
-
Vishal Suthar over 11 yearsUpdated my answer..@user1619768
-
user1619768 over 11 yearsNo error, but now i'm back to the original question. it returns "{ item = ADDR }"
-
user1619768 over 11 yearsThanks a million. Once you directed me to the data source.. I seen where {Item =} was coming from. All along I thought it was the listbox i was having problems with. Thanks again.