1

我正在尝试使用 MVVM 轻消息在导航期间将值从一个页面发送到另一个页面(例如,将所选项目的 id 发送到编辑页面)。因此,列表页面的视图模型会发送一条消息,然后将导航消息发送到重定向到编辑页面的视图。编辑页面的视图模型仅在页面导航发生时创建。所以当我在编辑页面视图模型中注册这个事件时,我从来没有收到消息?什么是最好的解决方案?

提前致谢。

4

1 回答 1

3

您最好的解决方案是使用查询字符串而不是消息传递。如果您不使用查询字符串,您将不得不处理应用程序被停用(tomestoned)等情况,然后用户单击“返回”并且您的应用程序加载第二页而没有收到消息。

但是,如果您想继续这条路径,您可以修改 ViewModelLocator 以便立即创建页面的 ViewModel(例如在 ctor 中)而不是根据需要创建。由于在加载 App.xaml 后立即创建 ViewModelLocator,因此您知道将立即创建任何视图模型。只要您的视图模型在其构造函数中注册消息,它就应该接收消息。

于 2010-09-21T13:11:49.567 回答