我的电脑里有一个方便的功能
TreeView
看起来像这样:
Card GetCardFromPath (TreePath path)
{
TreeIter iter;
if (path == null || !Model.GetIter (out iter, path))
return null;
if ((Model as TreeModelSort).IterIsValid (iter))
return (Card) Model.GetValue (iter, 0);
return null;
}
大多数情况下,这是没有任何错误的工作。但是,当模型更改后直接调用它时,第8行给出了以下Gtk运行时错误:
[Fatal 16:53:02.448] [Gtk] gtk_list_store_get_value: assertion `VALID_ITER (iter, list_store)' failed
[Fatal 16:53:02.449] [GLib-GObject] g_value_unset: assertion `G_IS_VALUE (value)' failed
据我所知,我甚至不需要检查
IterIsValid
,因为我已经在检查
Model.GetIter
VALID_ITER
在函数中失败,只有在
退货
true
?
如果有区别的话,模型就是
TreeModelSort
,有点像
TreeModelFilter
,用于过滤
ListStore
. 错误发生在
GetCardFromPath
从调用
HandleSelectionChanged
当多行刚从ListStore中删除时。这似乎并不妨碍任何东西正常工作,但每当我删除多行时出现一系列错误并不是很理想。