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

标签 c# gtk#

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

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);

最佳答案

试试这个:

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

Documentation of Remove function says :

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

关于c# - 如何从 Gtk.TreeStore 中删除父 TreeIter 的所有子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39833800/

相关文章:

c# - 访问 EnumerableRowCollection

c# - 对于 35 张图像,如何在获取 1 个特定像素的颜色时获得最佳性能?

c# - c# - 如何1个1地读取文件中的字符

c# - 在 Gtk 中,如何制作一个只有股票图标的按钮?

C# GTK 拖放

c# - 如何检查 Gtk.CheckButton 是否被选中?

c# - 如何在 Gtk# 中将上下文菜单添加到树节点?

c# - 将字符串从 WPF 保存到 MySQL varchar

c# - 构建 SQL Where 来自委托(delegate)的查询

linux - GTK# 在 Process 窗口句柄之间切换