在MvvmCross中放置重init操作的位置

时间:2013-07-25 14:07:17

标签: xamarin mvvmcross

在MvvmCross ViewModel中,Init方法用于任何屏幕初始化。但是,在Init完全完成之前,不会绘制屏幕。我有一些繁重的操作(数据库搜索)。理想情况下,我想用进度条绘制屏幕,​​然后运行我的初始化方法,最后更新屏幕。我将把这些操作放在MvvmCross ViewModel中?

1 个答案:

答案 0 :(得分:4)

我会在Service中做很多事情。在那项服务中我会:

  • 创建一个触发Done事件的方法,您可以在ViewModel中监听该事件,然后从中填充包含数据的属性。

  • 在后台线程上创建一个异步方法,当它返回时,填充属性。

当这项服务运行并获取数据时,我会在数据加载时在屏幕上显示其他内容。这可能是一些缓存数据或进度条或其他内容。