Что определяет, вызывает ли NavigationCommands.BrowseBack конструктор страницы?C#

Место общения программистов C#
Ответить
Anonymous
 Что определяет, вызывает ли NavigationCommands.BrowseBack конструктор страницы?

Сообщение Anonymous »

У меня есть две страницы с похожей логикой. Загрузите страницу, нажмите несколько кнопок, чтобы отобразить/скрыть другие кнопки, перейдите на следующую страницу. Когда я перехожу на следующую страницу и нажимаю кнопку «Назад», я возвращаюсь на предыдущую страницу.

Разница в том, что на одной странице (FirstPage) при нажатии кнопки «Назад» вызывается конструктор, который вызывает сброс значений по умолчанию. На другой странице (SecondPage) не вызывается конструктор, и я не знаю почему.

public FirstPage()
{
InitializeComponent();
DisplayStuff();
}


Для параметра KeepAlive на FirstPage установлено значение False.

public SecondPage(object arg1, object arg2)
{
InitializeComponent();
DisplayStuff(arg1, arg2);
}


На этой странице для параметра KeepAlive установлено значение False. Эти две страницы ни от чего не наследуются, и ничто не переопределяет какие-либо свойства. Единственное отличие, которое я вижу, — это пустой конструктор, поэтому я попытался предоставить SecondPage пустой конструктор, но все равно безуспешно.

Я относительно новичок в WPF (я работаю над ним час или два каждые 6 месяцев), так чего мне не хватает?

Вот кнопка «Назад», если это актуально.




Изменить: когда я нажимаю кнопку «Назад», SecondPage не сохраняет свое состояние. Он просто загружает пустую страницу, поскольку DisplayStuff еще не вызывался.

Код навигации:

NavigateTo(new SecondPage(arg1, arg2));

protected void NavigateTo(Page page)
{
NavigationService.Navigate(page);
}


Подробнее здесь: https://stackoverflow.com/questions/564 ... onstructor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»