0
長話短說:樹節點刪除()不工作
- 我遍歷一個通用的樹和收集一些節點列表,按照一個完整的遍歷後過濾
- 我開始通過一個消除每一個節點一個
刪除收集節點
foreach (TreeData nd in nodeBucket.Reverse<TreeData>())
{
if (nd.node.Parent != null)
{
nd.node.Remove();
}
}
樹有大約2000個節點。不知何故,當所有節點都應該被刪除時,有一些節點不會被刪除,Remove()會被調用,並且它們有一個空的父節點後綴。沒有被刪除的節點總是相同的。
也試過node.Parent.Nodes.Remove(node)
,沒有運氣。
tree.BeginUpdate();
tree.EndUpdate();
tree.Invalidate();
tree.Refresh();
tree.Update();
不工作。
TreeData結構是這樣的:
struct TreeData
{
public TreeData(TreeNode node)
{
this.node = node;
this.parent = node.Parent;
this.level = node.Level;
}
public TreeNode node;
public TreeNode parent;
public int level;
}
發行固定:這個問題是重複的節點(濾波是檢查節點名稱)有關。
你說的「不要刪除」呢?它們是否保留在其父節點的Nodes集合中? – svinja
它們在樹形視圖中顯示/可見,即使它們被移除後它們將父引用設置爲null,並且父節點將不會引用它們。 –
所以你有遍歷代碼,你可以更新的問題也 – Damith