我想从我的页面捕获NavigationService.Navigating事件,以防止用户向前导航。我有这样定义的事件处理程序:什么时候NavigationService被初始化?
void PreventForwardNavigation(object sender, NavigatingCancelEventArgs e)
{
if (e.NavigationMode == NavigationMode.Forward)
{
e.Cancel = true;
}
}
...并且工作正常。不过,我不能确定究竟在何处放置此代码:
NavigationService.Navigating += PreventForwardNavigation;
如果我把它放在网页,或初始化事件处理程序的构造函数,那么的NavigationService仍然是零,我也得到一个NullReferenceException。但是,如果我将它放在Page的Loaded事件处理程序中,那么每次页面被导航时都会调用它。如果我理解正确,那意味着我多次处理相同的事件。
我可以添加相同的处理程序的事件多次(我会使用页面的Loaded事件挂钩)?如果没有,在Initialized和Loaded之间有什么地方可以做这种布线?