我在App中有一个显示项目列表的页面。当用户选择项目时,App导航到包含所选项目细节的第二页面。我认为这是一个典型的场景。
我在互联网上阅读了大量文章,但我仍然希望听到有关该主题的专家意见。
我已经找到了两个看起来最好的选择:
消息传递 Page1导航到Page2,ViewModel2将消息发送回ViewModel1,询问所选项目。该消息将包含一个充当setter的回调。
共享服务存在一个服务,该服务公开应在两个ViewModel之间共享的所有数据。在这种情况下,它将是:
interface IAppService
{
object SelectedItem { get; set; }
}
如果两个VM在构造函数中注入了此服务,我们就完成了。
因此,简而言之,在两个不同页面的ViewModel之间共享数据的推荐方法是什么?