我正在创建一个包含多个页面的应用。每次进入和离开页面时都会调用OnNavigatedTo和OnNavigatedFrom。
但是当一个页面的构造函数被调用时,当我只是在我的页面之间导航时,应用程序是否会将其终止并再次调用构造函数?
有没有例外?
答案 0 :(得分:3)
如果页面在BackStack
上没有,假设该页面上没有资源泄漏,则该页面将被终止。这就是为什么MainPage的构造函数只被调用一次,因为它总是在BackStack
。
例如,给出以下页面导航顺序,构造函数调用将是:
MainPage --> Page1 --> Page2 --> Go Back(Page 1) --> Go Back (MainPage) --> Page1
Ctor --> Ctor --> Ctor --> --> --> Ctor
正如您所看到的,从Page2返回到Page1将不会调用Page1的构造函数,因为它仍然在BackStack
上。但是,一旦返回MainPage,导航到Page1将调用Page1的构造函数,因为它不再位于BackStack
。