如何从Gtk.TreeStore中删除父TreeIter中的所有子节点?

时间:2016-10-03 14:16:51

标签: c# 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);

2 个答案:

答案 0 :(得分:1)

试试这个:

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

Documentation of Remove function says

“@ iter设置为该级别的下一个有效行,” “如果@iter仍然有效,则返回%TRUE,否则返回%FALSE。”

答案 1 :(得分:0)

尝试clear()方法。

供您参考:

http://api.gtkd.org/src/gtk/TreeStore.html