我使用VS2017和Windows Template Studio编写了一个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"方法,但它没有被调用。
我做错了什么?
使用透视页面导航模板创建 UWP 项目时,它将在"视图"文件夹中创建PivotPage
。它将在PivotPage
PivotItem
中设置主页。
加载页面并成为父框架的当前源时调用的OnNavigatedTo
。切换页面时,父框架的当前源不会更改。
如果您在PivotPage
中写入OnNavigatedTo
,它将在您启动应用程序时被调用。您应该能够在MainPage
中添加Loaded
事件,当页面已构造并添加到对象树并准备好进行交互时,就会发生该事件。