如何在MVVM中实现OnNavigatedTo / From?

时间:2016-05-07 19:30:19

标签: c# wpf mvvm-light

我希望我的ModelView知道导航页面何时被激活/停用,所以我找到了following文章,其上面有很好的处理方法。不好的是这篇文章的目标是WinRT,我的应用程序既不是WinRT也不是Silverlight。所以我必须使用System.Windows.Controls.Page提供的任何内容。我该如何实施这种机制?

1 个答案:

答案 0 :(得分:0)

您是否在寻找跟踪导航事件?我认为您需要在View或ViewModel中实现 INavigationAware 界面(Prism将首先检查视图,如果它没有实现INAVigationAware,它也会检查ViewModel。) / p>

请参阅下面的实施简短示例。但问题是你需要实现所有2种方法,即 OnNavigatedFrom和OnNavigatedTo

public class MyViewModel : INavigationAware 
{
   bool INavigationAware.IsNavigationTarget(NavigationContext navigationContext)
  {
     return false;
  }

  void INavigationAware.OnNavigatedFrom(NavigationContext navigationContext)
  {
  }

  void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
  {
  }
}