在页面之间导航时使用 mvvm 保存数据的正确方法

Correct way to save data with mvvm when navigating between pages

我正在开发一个通用应用程序,但我对使用 MVVM 时保存数据的最佳方式感到困惑。我在这个项目中使用 MVVM light

我有一个页面(即 LocationsPage),其中的 ListBox 绑定到包含 LocationViewModel 类型对象的可观察集合。

位置页面底部有一个 'New' 按钮,允许用户创建新位置。

点击后,它会导航到另一个页面,即 LocationPage。

此页面包含创建新位置所需的所有字段,在页面底部,我有一个 'Save' 按钮。

单击后,我想返回到包含列表的 LocationsPage 并将新创建的位置添加到该列表,我还想将数据保存到文件。

有没有办法在不使用代码隐藏(即 OnNavigatedTo、OnNavigatedFrom)的情况下实现这一点?

我知道一个快速的解决方法是使页面之间的可观察集合成为全局对象,以便可以将新创建​​的位置对象直接添加到其中,但老实说我不喜欢这个想法。

有人可以指出正确的方向,告诉我如何最好地处理这个问题吗?

谢谢。

也许将集合传递给 "child" 视图模型?甚至父视图模型作为具有 AddNew 方法的 ILocations?