2016-10-03 32 views
3

給定一個TreeStore和TreeIter,如何從父項中刪除所有子節點而不刪除父項?這些都沒有被選中,只想清除父節點下的一組節點。如何從Gtk.TreeStore中的父級TreeIter中刪除所有的子節點?

ParentNode 
    +- Child 1 
    +- Child 2 
    +- Child 3 

因此,刪除「子1-3」,並保持ParentNode。

這需要在某種程度上東西循環:

 TreePath p = this.game_store.GetPath (this.players_iter); 
     p.Down(); 
     TreeIter i = new TreeIter(); 
     this.game_store.GetIter (out i, p); 
     this.game_store.Remove (ref i); 

回答

1

試試這個:

while (this.game_store.Remove (ref i)); 

Documentation of Remove function says

「@iter是在該級別設置爲下一個有效行,」 「如果@iter仍然有效,返回%TRUE,否則返回%FALSE。」

+0

啊,這麼簡單,我真的不瞭解店面的核心概念。 –

相關問題