可以';t访问ListItem

本文关键字:访问 ListItem 可以 | 更新日期: 2023-09-27 18:20:50

我正在尝试获取listbox1.SelectedItems的所有标签,所以我想使用这样的foreach:

foreach (ListItem itm in listBox1.SelectedItems)
        {
            MessageBox.Show(itm.Tag);
        }

但是VS2010找不到"ListItem",我需要添加那个特定的引用。。但我找不到它。我可以做其他事情吗?或者在哪里可以找到引用或程序集。

可以';t访问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