我有一个WP 8.1(原生)应用程序,我使用Caliburn。微。 在MainPageViewModel中,我导航到另一个页面,我想在MyObject(MainPageViewModel上的属性)上设置一些值并将其推回到MainPageViewModel。
所以我通过传递myObject导航到新页面(它正常工作):
navigationService.NavigateToViewModel<AnotherPageViewModel>(myObject)
在AnotherPageViewModel中,我将一些值设置为myObject,然后返回MainPageViewModel:
navigationService.GoBack();
但是如何将更改的myObject传递回MainPageViewModel?当我回来时,创建了MainPageViewModel中的myObject的新实例。
编辑: 我希望&#34;改变&#34; myObject将在调用GoBack()方法后将更改的值保存在MainPageViewModel中,但显然会创建一个新实例。
由于
答案 0 :(得分:1)
有两件事情浮现在脑海中。
如果MainPageView没有将NavigationCacheMode
设置为Required
,那么在导航回来时会创建一个新的MainPageView和MainPageViewModel实例。在这种情况下,我建议你在其他地方(设置等)的AnotherPageViewModel中选择后保存值,然后在MainPageViewModel激活时加载
如果MainPageView将NavigationCacheMode
设置为Required
,则导航时不会重新创建MainPageViewModel。在这种情况下,我建议您使用消息传递(IEventAggregator
)。您可以向MainPageViewModel发送消息,通知该对象已更改,您可以在消息中包含整个新对象。