UWP 应用程序中的全局 MVVM ViewModel

Global MVVM ViewModel in UWP app

在 WP8.1 或 WPF 桌面应用程序中,我可以在 App.xaml.cs 中将我的 ViewModel 创建为静态实例,并在整个应用程序中将其称为 "App.myViewModel",但在 UWP 中这似乎不起作用(也许是设计使然?)。

我想要一个全局 ViewModel 的原因是,像许多应用程序一样,我有一个主页通过从网站下载信息来填充虚拟机(我正在为一个基于业务的 RSS Reader 工作客户端),当我导航到另一个页面然后返回到 MainPage 时,我的 vm 又是空的(因为我似乎别无选择,只能在 MainPage 中声明它)所以我每次都必须重新加载所有数据。

此外,如果我想从导航页面访问 VM,我现在必须将对 VM 的引用传递到该页面,而使用全局方法我仍然可以访问 App.myViewModel。

我唯一一次更改 VM 内容是在主页上的 UI 操作,所以我只想能够从其他页面导航回主页并保持 VM 完好无损。

谁能解释一下这在 UWP 中是如何完成的?我还能使用 App.xaml.cs 吗?如果可以,怎么办?如果这不可能,为什么要这样设计?

您正在寻找 ViewModelLocator。 Here你有很好的解释和示例如何使用它。