0

我试图从一个对象投射到一个 TreeviewItem 并得到下一个错误:

"unable to cast object of type 'system.string' to type 'system.windows.controls.treeviewitem'."

两天来,我正在寻找解决方案,我看到了许多显式转换为 treeviewitem 的示例,所以我认为它是合法的,但它不起作用。

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 中。

4

1 回答 1

-1

该消息说您正在尝试将 STRING 强制转换为 TreeViewItem。

代码中的第三行

index = PM_TreeView.Items.Add(ObjReq.Name);

将 STRING 添加到 Items 集合,但第七个尝试将相同的字符串强制转换为 TreeViewItem

ParentNode = (TreeViewItem)PM_TreeView.Items[index];

而不是添加一个字符串,添加一个新的 TreeViewItem 与您想要的 Header 值

于 2012-12-12T08:23:51.247 回答