我正在尝试自学 Xamarin 表单,但我很难理解活动和共享代码如何与应用程序特定的 MVVM 交互。从我可以收集到的内容中,模型部分可以从视图模型和主视图中访问活动,反过来主要活动可以访问共享代码?感觉所有的参考文档都遗漏了与活动和共享代码的关系?
因此,如果我想制作一个可以扫描 NFC 标签并将该信息中继到 REST 服务的应用程序,我需要创建一个共享代码对象 API 客户端、特定于平台的 NFC(mainactivity.cs?),然后绑定到模型以将数据放到 UI 上?
我正在尝试自学 Xamarin 表单,但我很难理解活动和共享代码如何与应用程序特定的 MVVM 交互。从我可以收集到的内容中,模型部分可以从视图模型和主视图中访问活动,反过来主要活动可以访问共享代码?感觉所有的参考文档都遗漏了与活动和共享代码的关系?
因此,如果我想制作一个可以扫描 NFC 标签并将该信息中继到 REST 服务的应用程序,我需要创建一个共享代码对象 API 客户端、特定于平台的 NFC(mainactivity.cs?),然后绑定到模型以将数据放到 UI 上?
MVVM 的目标是在业务逻辑、UI 和数据模型之间完全隔离。
因此,根据您的情况,您将创建您的 android 视图,最有可能在 AXML 中。您通常在 Android 活动中执行的任何逻辑都将在 ViewModel 中以共享代码的形式完成。
然后,您将在共享代码中创建 REST API 客户端连接,例如可能在服务文件夹下。因为这是不需要特定于平台的功能。所有平台都可以按原样使用它。
然后,您可以从 ViewModel 调用 REST API 并填充您的模型,这些模型将从视图中调用 - 即。该活动将引用 ViewModel 和 ViewModel 包含的任何模型。
当涉及到您的 NFC 场景时,您将在 ViewModel 中编写 NFC 方法,然后您将使用诸如Dependency Service之类的东西来确定平台,然后该平台将运行编写在每个平台项目中的 NFC 逻辑。
这也就意味着当你引入 iOS 或者其他平台时,你可以复用那个 Model 和 ViewModel,然后调用 iOS 项目中写的 NFC 逻辑。