我有两个具有相似逻辑的页面。加载页面,单击一些将显示/隐藏其他按钮的按钮,继续下一页。当我点击下一页时,如果我单击后退按钮,我将返回上一页。
不同之处在于,当我单击后退按钮时,一个页面(FirstPage)将调用构造函数,该构造函数调用重置默认值。另一个页面(SecondPage)没有调用构造函数,我不知道为什么。
public FirstPage()
{
InitializeComponent();
DisplayStuff();
}
FirstPage 已KeepAlive
设置为False
.
public SecondPage(object arg1, object arg2)
{
InitializeComponent();
DisplayStuff(arg1, arg2);
}
此页面也已KeepAlive
设置为False
。这两个页面不继承任何东西,也没有任何东西可以覆盖任何属性。我能看到的唯一区别是空的构造函数,所以我尝试给 SecondPage 一个空的构造函数,但仍然没有运气。
我对 WPF 比较陌生(我每 6 个月工作一两个小时),所以我错过了什么?
这是相关的后退按钮。
<Button Command="{x:Static NavigationCommands.BrowseBack}" />
编辑:当我单击后退按钮时,SecondPage 不会保持其状态。它只是加载一个空页面,因为DisplayStuff
尚未调用。
导航代码:
NavigateTo(new SecondPage(arg1, arg2));
protected void NavigateTo(Page page)
{
NavigationService.Navigate(page);
}