在Gtk中,如何在ListStore中搜索包含特定值的行?

时间:2010-02-06 19:37:17

标签: c# gtk gtk# gtktreeview

我有ListStore建模Tag的列表。此列表可能会与ListStore区分开来。我想要做的是在我的TagRemoved课程中收听TagList事件,并在触发事件时从Tag移除ListStore。但是,我似乎无法找到一种方法来搜索ListStore包含给定Tag的行,以便我可以删除它。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:4)

GtkListStore实现GtkTreeModel接口,其中包含您想要的树遍历操作。据我所知,搜索列表/树存储没有便利API,所以你必须自己动手。

由于您只是在GtkListStore上进行迭代,因此您可以忽略处理子/父关系的所有API,只需使用gtk_tree_model_iter_first()gtk_tree_model_iter_next()来遍历列表。

或者,如果您已经知道商店中已删除标记的索引(例如,来自您的TagRemoved事件),则可以将其转换为GtkTreePath并使用gtk_tree_model_get_iter()直接检索有问题的行而不进行搜索。

答案 1 :(得分:1)

GtkListStore在内部实现为linked list,因此您应该自己扫描模型。