2016-11-19 59 views

回答

0

该模型直接显示查询结果SELECT,因此它显示查询时数据库的状态。

更新数据库的代码使用不直接影响模型内部数据的操作(以前的SELECT查询的缓存结果),因此就视图而言没有变化。

refresh()中再次应用SELECT查询更新模型关于该数据库状态的知识,从而导致新数据在视图中可用。

“清除”是由setData()clear()的调用引起的。 不知道为什么它在那里,我不认为这是必要的。

+0

我认为需要清除以显示更改的数据。但我有一个新的问题关心它。如果更改的项目是大表格的最后一个并且被视为向下滚动,则刷新listview失去滚动位置后,用户需要显示其更改的值,但listview会显示第一个记录。 –

+0

Listview.scrolltoitem需要使用,我想。 –

+0

是的,无论是手动滚动,或者实现您自己的模型,更新而不是重置。 –