从xamarin表单MVVM中的服务加载数据的最佳位置



在xamarin表单中调用服务和加载数据的最佳位置是什么

  1. 到目前为止,我正在视图模型构造函数中调用服务并加载数据

  2. 我遇到了新情况-在我的应用程序中,我会检查网络连接,如果它没有连接到互联网,我不会在主表单中加载数据,并显示一个表示网络不可用的模态表单。如果重新检查成功,将弹出模态,但由于未加载数据,主窗体为空。

所以在这种情况下,我必须在出现覆盖函数时编写服务调用。它在模态弹出后被调用。这没关系。但问题是,每当我们导航到那个视图时,它都会发出服务调用。

请指导我在哪里最好地调用这些服务

对于您的问题,您可以使用C#事件(发布服务器-订阅服务器)作为解决方案在视图模型中编写一个名为InternetDisconnectedEvent的事件。在视图代码隐藏(.xaml.cs)中订阅该事件

断开internet连接时,在视图中更改UI。

有关事件的详细信息&学员,查看本教程

"…但问题是,每次我们导航到该视图时,它都会发出服务调用。"

创建一个标志(布尔属性),比如视图模型(或视图,取决于当前实现)中的IsLoaded,最初设置为false。然后添加一个逻辑,在调用服务之前检查IsLoaded标志。如果IsLoadedfalse,则运行当前检查互联网连接、呼叫服务等逻辑。最后将IsLoaded更新为true

最新更新