2017-10-09 69 views
0

我已經使用VS2017和Windows模板工作室編寫了UWP應用。我通過使用「透視頁面導航模板」創建了多個頁面。在UWP應用中導航

以下是基本代碼:

public sealed partial class MainPage : Page, INotifyPropertyChanged 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 

     ///Update controls here 

     base.OnNavigatedTo(e); 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    private void Set<T>(ref T storage, T value, [CallerMemberName]string propertyName = null) 
    { 
     if (Equals(storage, value)) 
     { 
      return; 
     } 

     storage = value; 
     OnPropertyChanged(propertyName); 
    } 

    private void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
} 

我已經添加了「的OnNavigatedTo」的方法,但它不會被調用。

我在做什麼錯?

回答

1

當您使用數據透視頁面導航模板創建UWP項目時,它將在View文件夾中創建PivotPage。並且它將在PivotItem中的PivotPage中設置MainPage。

當頁面被加載併成爲父幀的當前源時,OnNavigatedTo被調用。當您切換頁面時,父框架的當前來源不會改變。

如果您在PivotPage中編寫OnNavigatedTo,它將在您啓動應用程序時調用。您應該能夠在MainPage中添加Loaded事件,它在頁面已經構建並添加到對象樹中並且已準備好進行交互時發生。

+0

感謝Jayden,我將Page_Loaded添加到主頁面,它被稱爲初始加載,但是如果我返回,則不會調用我需要每次從任何單獨備用頁面返回主頁面時都會看到該頁面。 –

+0

@TreyBalut您應該可以在'Pivot'中使用'SelectionChanged'事件,當所選的PivotItem發生變化時發生。 –