无法访问ListItem

时间:2012-01-20 14:22:35

标签: c# winforms

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

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

但VS2010找不到“ListItem”,我需要添加该特定参考..但我找不到它。我可以做其他事情,或者在哪里可以找到参考或装配。

4 个答案:

答案 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