我想從我的頁面捕獲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之間有什麼地方可以做這種佈線?