如何访问 ItemCollection 中的元素?
How to access elements from an ItemCollection?
我想访问 ItemCollection
的内容,其中包含 Treeview
(称为 OOB)中的项目。
if (OOB.Items.Count > 0)
{
ItemCollection items = OOB.Items;
foreach (TreeViewItem node in items)
foreach
抛出运行时错误:
Unable to cast object of type 'System.Xml.XmlElement' to type 'System.Windows.Controls.TreeViewItem'.
我可以在 ItemCollection
项中看到我想从调试器访问的信息:
如何访问元素,特别是元素名称?
ItemsControl 的 Items
或 ItemsSource
集合包含任意类型的数据项,而不是 TreeViewItems(除非您明确添加它们)。
您的 TreeView 的 Items
集合包含 XmlElements,您可以像这样直接访问它们:
foreach (XmlElement node in OOB.Items)
{
var name = node.Name; // node is an XmlElement
...
}
如果您确实需要访问项目容器,您可以像这样使用 ItemsControl 的 ItemContainerGenerator
:
var treeViewItem = (TreeViewItem)OOB.ItemContainerGenerator.ContainerFromItem(node);
我想访问 ItemCollection
的内容,其中包含 Treeview
(称为 OOB)中的项目。
if (OOB.Items.Count > 0)
{
ItemCollection items = OOB.Items;
foreach (TreeViewItem node in items)
foreach
抛出运行时错误:
Unable to cast object of type 'System.Xml.XmlElement' to type 'System.Windows.Controls.TreeViewItem'.
我可以在 ItemCollection
项中看到我想从调试器访问的信息:
如何访问元素,特别是元素名称?
ItemsControl 的 Items
或 ItemsSource
集合包含任意类型的数据项,而不是 TreeViewItems(除非您明确添加它们)。
您的 TreeView 的 Items
集合包含 XmlElements,您可以像这样直接访问它们:
foreach (XmlElement node in OOB.Items)
{
var name = node.Name; // node is an XmlElement
...
}
如果您确实需要访问项目容器,您可以像这样使用 ItemsControl 的 ItemContainerGenerator
:
var treeViewItem = (TreeViewItem)OOB.ItemContainerGenerator.ContainerFromItem(node);