【发布时间】:2015-01-30 04:45:04
【问题描述】:
我试图让下面的代码块工作,该代码块假设从具有 TreeModelFilter 的 TreeView 中删除一行,代码编译并运行良好,但是 TreeView 不反映该行删除。
// Remove an item
TreeIter iter;
TreeView.Selection.GetSelected (out iter);
TreeIter child_iter = Filter.ConvertChildIterToIter (iter);
ListStore.Remove(ref child_iter);
编辑:
查看此代码块上出现的错误消息,它们是:
Gtk-CRITICAL **: gtk_list_store_get_path: assertion 'iter->stamp == GTK_LIST_STORE (tree_model)->stamp' failed
Gtk-CRITICAL **: gtk_tree_model_filter_convert_child_iter_to_iter: assertion 'child_path != NULL' failed
Gtk-CRITICAL **: gtk_list_store_remove: assertion 'VALID_ITER (iter, list_store)' failed
似乎显然这意味着 iter 无效,通常来自不同的模型,但由于我认为只有一个 treeviewmodel,即使我使用了一个过滤器,我猜它会产生两个。
【问题讨论】: