C# Can';t访问列表项
我正在尝试获取listbox1.SelectedItems的所有标记,因此我想使用如下foreach:C# Can';t访问列表项,c#,winforms,C#,Winforms,我正在尝试获取listbox1.SelectedItems的所有标记,因此我想使用如下foreach: foreach (ListItem itm in listBox1.SelectedItems) { MessageBox.Show(itm.Tag); } 但是VS2010没有找到“ListItem”,我需要添加那个特定的引用。。但是我找不到它。我可以执行其他操作,或者在哪里可以找到该引用或程序集。属性列表框1。SelectedIte
foreach (ListItem itm in listBox1.SelectedItems)
{
MessageBox.Show(itm.Tag);
}
但是VS2010没有找到“ListItem”,我需要添加那个特定的引用。。但是我找不到它。我可以执行其他操作,或者在哪里可以找到该引用或程序集。属性
列表框1。SelectedItems
返回对象的集合。这些是您选择的实际对象。没有ListItem
对象
尝试使用var
关键字。然后让编译器通过将光标悬停在它上面来确定它的类型。它显示了什么对象类型
它似乎是ListViewItem
,但是您尝试使用ListItem
类型 listBox1.SelectedItems
返回对象的集合,因此这取决于将对象添加到列表框时对象的类型。例如,如果您将它们添加为字符串,您只需执行以下操作:
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);
}
您可以在此处找到一个示例:
如果您希望解析数据绑定集合并将其显示到列表框中,Gordon会给出答案。如果您希望解析可视化树并获取ListItem,那么VisualTreeHelper类拥有解析此类数据所需的一切
尝试使用var
关键字。然后让编译器通过将光标悬停在它上面来确定它的类型。我想检索该项的标记,因为它与item.MessageBox.Show((Control(itm)).tag)的文本不同,假设您在foreach中更改为使用var;那么,我怎样才能抛出我所有的listbox1.SelectedItems并显示标记呢?这取决于你放入的对象是否支持“Tag”属性。您在列表中放入了什么类型的对象?ListViewItem itms=new ListViewItem();itms.Text=“测试”;itms.Tag=“test2”;它似乎是ListViewItem
,但是您尝试使用ListItem
类型。我认为这有点过分,因为ListViewItem
具有XandrUu想要的标记属性。