我试图让listbox1.SelectedItems的所有标签,所以我想用这样一个foreach:不能存取权限列表项
foreach (ListItem itm in listBox1.SelectedItems)
{
MessageBox.Show(itm.Tag);
}
但VS2010没有找到“列表项”和我需要添加特定的参考..但我找不到它。我可以做其他事情吗?或者我可以在哪里找到参考或装配。 谢谢!
我试图让listbox1.SelectedItems的所有标签,所以我想用这样一个foreach:不能存取权限列表项
foreach (ListItem itm in listBox1.SelectedItems)
{
MessageBox.Show(itm.Tag);
}
但VS2010没有找到“列表项”和我需要添加特定的参考..但我找不到它。我可以做其他事情吗?或者我可以在哪里找到参考或装配。 谢谢!
财产listBox1.SelectedItems
返回Object
的集合。这些是您选择的实际对象。没有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);
}
您可以在这里找到一个例子: http://mcpmag.com/articles/2004/02/01/bind-data-to-winforms-controls.aspx
我认为这有点矫枉过正,因为ListViewItem具有XandrUu想要的Tag属性。 – Aphelion
如果您正在寻找解析并将数据绑定集合显示到您的ListBox,Gordon有答案。如果您正在寻找解析视觉树并获取ListItem,那么VisualTreeHelper类就拥有了解析这些数据所需的所有东西。
http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.aspx
尝试使用'var'关键字。然后让编译器通过将光标悬停在它上面来确定它的类型。 – Aphelion
我想检索项目的标签,因为它与项目的文本不同。 – XandrUu
WinForms应用程序 – XandrUu