棱镜导航 - 找出导航请求的来源?

时间:2012-07-23 23:42:01

标签: prism

我有一个视图模型绑定到区域中使用的视图。我试图找到一种方法,当该视图从特定视图(例如视图A)导航到它时,它在内部做一些工作,比如初始化一些列表,设置一些东西,等等。但如果它已从视图B导航到它,则它不需要重新初始化所有内容,只需显示它已有的数据。

我可以传递一个我想的参数,说这是一个新的操作还是我们要回旧的工作,但我认为如果我们来自这个视图会更好,我们做了一件事,如果我们来自那个,我们会做另一件事。

如果这是有道理的:)

1 个答案:

答案 0 :(得分:0)

您可以实现包含3种方法的INavigationAware接口。其中一种方法是OnNavigatedTo方法。在那里,您可以访问日志并检查当前条目。从那里你应该能够确定它是来自View A还是View B.

public void OnNavigatedTo(NavigationContext navigationContext)
{
    var journal = navigationContext.NavigationService.Journal;
    //use journal.CurrentEntry 
}