我正在尝试获取listbox1.SelectedItems的所有标签,所以我想使用这样的foreach:
foreach (ListItem itm in listBox1.SelectedItems)
{
MessageBox.Show(itm.Tag);
}
但VS2010找不到“ListItem”,我需要添加该特定参考..但我找不到它。我可以做其他事情,或者在哪里可以找到参考或装配。
答案 0 :(得分:2)
属性listBox1.SelectedItems
返回Object
的集合。这些是您选择的实际对象。没有ListItem
个对象。
尝试使用var
关键字。然后让编译器将光标悬停在它上面来确定它的类型。它告诉你什么对象类型?
似乎是ListViewItem
,但您尝试使用ListItem
类型。
答案 1 :(得分:1)
listBox1.SelectedItems
返回一组对象,因此它取决于将它们添加到listBox时的类型。例如,如果您将它们添加为字符串,则可以执行以下操作:
foreach (String str in listBox1.SelectedItems)
{
MessageBox.Show(str);
}
答案 2 :(得分:0)
listBox1.SelectedItems的类型为ListBox.ObjectCollection。你为什么要试图转换为ListItem?
您可以创建自定义对象,使用以下命令将其绑定到ListBox对象:
listBox1.DataSource = YOUR_CUSTOM_OBJECT_ARRAY
然后遍历您的项目:
foreach (YOUR_CUSTOM_OBJECT itm in listBox1.SelectedItems)
{
MessageBox.Show(itm.CUSTOM_PROPERTY);
}
你可以在这里找到一个例子: http://mcpmag.com/articles/2004/02/01/bind-data-to-winforms-controls.aspx
答案 3 :(得分:0)
如果您正在寻找解析并向ListBox显示数据绑定集合,Gordon有答案。如果您希望解析可视树并获取ListItem,那么VisualTreeHelper类具有解析此类数据所需的一切。
http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.aspx