2
我有一个填充的TreeView与我创建的节点,有几个节点类,都从treeNode继承。当我编辑一个节点(使用GUI对话框),它可能会改变为不同的类,所以我在那个过程中创建一个新节点,并试图用我的新节点替换选定的节点,但那不会没有工作,节点保持旧的,无法弄清楚我做错了什么。如何用新创建的节点替换TreeView的选定节点
代码:
TreeNodeMission mission = (TreeNodeMission)treeView.SelectedNode;
TreeNodeMission newMission = ChangeMissionDialog(mission);
treeView.SelectedNode = newMission; // doesn't work
还试图删除和添加它,也不起作用
index = treeView.Nodes.IndexOf(treeView.SelectedNode); // index returns -1
treeView.Nodes.Remove(treeView.SelectedNode);
treeView.Nodes.Insert(index, newMission);
我到底做错了什么?
更新: treeView.SelectedNode不为null,它是我选择的有效节点。
你肯定SelectedNode不是null? – 2013-02-19 08:38:55
如果'index'返回'-1',则表示没有选择节点,因此任何有关它的代码都不起作用。 – 2013-02-19 08:40:39
它是什么样的应用程序? WPF或Winforms或其他? 如果是WPF是您的SelectedNode通知? – 2013-02-19 08:42:12