使用 MvvmCross,实现全局应用程序事件的野兽方式是什么?
案例 1:应用程序启动 - 我想 PIN 保护我的应用程序,所以在 FinishedLaunching 我想要一些对象来检查 PIN 是否已设置,如果未设置,则启动模态视图以询问用户输入 PIN。模态视图应该隐藏下面的导航而不弹出或修改任何加载的 View 。
案例 2:注销 - 用户通过 mvvm 命令从应用程序中删除 PIN,并且模态视图会阻止所有其他 View 而不卸载它们。在这种情况下,存储 PIN 的模型会发布一个事件,有些人应该让该事件显示模态视图。
这可能很容易在 appdelegate 上实现,但我想知道是否有更好的 MVVM 方式来执行此操作,即应用程序本身的某种 ViewModel 响应暴露核心库中行为的事件。
最佳答案
如果您希望在应用程序/单例级别处理这些类型的事件,那么您可以使用以下方法轻松完成此操作:
Messenger
的 UI 项目中初始化的某种专业服务收听消息的插件ICommand
ViewModel
中的实现s 发送用户发起的事件 MvvmCross 实际上包含一个初始实现来帮助 2 - 每个平台都提供一个单例
IMvxLifetime
目的这是在每个平台上实现的,使用:
然而,在实践中,这
IMvxLifetime
实现从未被特别频繁地使用 - 当然,当我使用它几次时,我发现自己不得不在几个平台上解决问题。
关于c# - Mvvmcross:处理全局应用程序事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527386/