我无法从我的Tree中删除“current_node”的父节点。这是我正在尝试的: 我正在使用C#.NET开发VSTO
TreeGridNode current_node = myTreeGrid.CurrentNode;
TreeGridNode parent_node = myTreeGrid.CurrentNode.Parent;
// this works
myTreeGrid.Nodes.Remove(current_node);
if (parent_node.Nodes.Count == 0) {
// it never gets here, it doesn't detect that the lats child was just removed above
myTreeGrid.Nodes.Remove(parent_node);
}
使用此自定义结构 http://blogs.msdn.com/b/markrideout/archive/2006/01/08/510700.aspx
答案 0 :(得分:2)
我认为您的问题是,您尝试从current_node
而不是myTreeGrid
的父级移除current_node
。 myTreeGrid.Nodes
未包含对current_node
的引用,因此调用myTreeGrid.Nodes.Remove(current_node)
基本上不执行任何操作。
由于没有删除任何内容,parent_node.Nodes
仍然包含对current_node
的引用。尝试直接从current_node
删除parent_node.Nodes
,您的问题可能会得到解决:
更改:强>
myTreeGrid.Nodes.Remove(current_node);
到
parent_node.Nodes.Remove(current_node);