以xamarin形式调用服务和加载数据的最佳位置是什么
直到现在我在视图模型构造函数中调用服务并加载数据
我有一个新情况 - 在我的应用程序中,我检查网络连接,如果它没有连接到互联网,我将不会在主窗体中加载数据,并显示模式表格说网络不可用检查。如果重新检查成功则会弹出模态,但由于未加载数据,因此主窗体为空。
所以在这种情况下我必须在出现覆盖功能上编写服务调用。在模式弹出后调用。哪个没关系。但问题是,每当我们导航到该视图时,它都会进行服务调用。
请指导我打电话给这些服务的最佳地点
答案 0 :(得分:1)
对于您的问题,您可以使用C#事件(发布者 - 订阅者)作为解决方案 在View Model中编写一个名为InternetDisconnectedEvent的事件。在View(.xaml.cs)背后的Code中订阅该事件
在互联网断开连接时,在视图中进行UI更改。
有关Event&amp ;;的更多信息代表们,check this tutorial
答案 1 :(得分:0)
" ...但问题是,每当我们导航到该视图时,它都会进行服务呼叫。"
创建一个标志(一个布尔属性),在viewmodel(或视图,具体取决于您当前的实现)中说IsLoaded
,最初设置为false
。然后在调用服务之前添加一个检查IsLoaded
标志的逻辑。如果IsLoaded
为false
,请运行您当前检查互联网连接,呼叫服务的逻辑,依此类推......最后将IsLoaded
更新为true
。