可以';t访问ListItem
本文关键字:访问 ListItem 可以 | 更新日期: 2023-09-27 18:20:50
我正在尝试获取listbox1.SelectedItems的所有标签,所以我想使用这样的foreach:
foreach (ListItem itm in listBox1.SelectedItems)
{
MessageBox.Show(itm.Tag);
}
但是VS2010找不到"ListItem",我需要添加那个特定的引用。。但我找不到它。我可以做其他事情吗?或者在哪里可以找到引用或程序集。
listBox1.SelectedItems
返回一个Object
的集合。这些是您选择的实际对象。没有ListItem
对象。
尝试使用var
关键字。然后让编译器通过将光标悬停在它上面来确定它的类型。它显示了什么对象类型?
它看起来是ListViewItem
,但是您尝试使用ListItem
类型。
listBox1.SelectedItems
返回一个对象集合,因此这取决于将它们添加到listBox时的类型。例如,如果您将它们添加为字符串,您可以执行以下操作:
foreach (String str in listBox1.SelectedItems)
{
MessageBox.Show(str);
}
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
如果您希望解析数据绑定集合并将其显示到ListBox,Gordon就有答案了。如果您希望解析可视化树并获得ListItem,那么VisualTreeHelper类就具备了解析此类数据所需的一切。
http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.aspx