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

How to remove all child nodes from parent TreeIter from Gtk.TreeStore?

给定一个 TreeStore 和 TreeIter,如何在不删除父节点的情况下从父节点中删除所有子节点? None个都选中了,只是想清除父节点下的一组节点。

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

所以删除"Child 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);

试试 clear() 方法。

供您参考:

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

试试这个:

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

Documentation of Remove function says:

"@iter 被设置为该级别的下一个有效行," "Return %TRUE if @iter is still valid, %FALSE if not."