У меня есть две страницы с похожей логикой.Загрузите страницу, нажмите некоторые кнопки, которые будут отображать / скрыть другие кнопки, перейдите к следующей странице.Когда я нажимаю на следующую страницу, если я нажимаю кнопку «Назад», я возвращаюсь на предыдущую страницу.
Разница в том, что одна страница (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);
}