我正在尝试从一个对象转换为TreeviewItem并获取下一个错误:
"unable to cast object of type 'system.string' to type 'system.windows.controls.treeviewitem'."
我正在寻找解决这个问题的2天,我看到很多关于明确投射到树视图的例子,所以我觉得它合法但不起作用。
foreach (Req ObjReq in reqFilter.NewList())
{
index = PM_TreeView.Items.Add(ObjReq.Name);
TreeViewItem ParentNode = new TreeViewItem();
//this is the Cast I try to do
ParentNode = (TreeViewItem)PM_TreeView.Items[index];
ParentNode.Tag = ObjReq.ID;
reqFilter["RQ_FATHER_ID"] = (ObjReq.ID.ToString());
reqFilter.KeepHierarchical = true;
if (reqFilter.NewList().Count > 0)
FillReqTreeView(reqFilter, ObjReq);
}
主要思想是将reqFilter中的List填充到Treeview中。
答案 0 :(得分:-1)
消息显示您正在尝试将STRING转换为TreeViewItem。
代码中的第三行
index = PM_TreeView.Items.Add(ObjReq.Name);
将一个STRING添加到Items集合中,而第七个尝试将此相同的字符串强制转换为TreeViewItem
ParentNode = (TreeViewItem)PM_TreeView.Items[index];
不是添加字符串,而是添加一个具有所需Header值的新TreeViewItem