Как вернуться на предыдущую страницу и сохранить содержимое предыдущей страницы WPF - PullRequest
0 голосов
/ 06 мая 2018

Как вернуться на предыдущую страницу и сохранить содержимое предыдущей страницы?

Я нашел это , но там они используют некрасивую панель навигации по умолчанию от Microsoft, поэтому я хочу создать свою собственную навигационную панель.

Как я могу это сделать? Я имею в виду, что хочу перейти со страницы 1 на страницу 2, но когда я возвращаюсь со страницы 2 на страницу 1, я хочу вернуться к той же странице 1, а не к ее новому экземпляру.

Теперь я использую этот (плохой) метод:

void PreviousButton(object sender , RoutedEventArgs e)
        {
            Page2 p2 = new Page2();
            NavigationService.Navigate(p2);
        }

1 Ответ

0 голосов
/ 06 мая 2018

Если вам не нужен интерфейс фрейма, не используйте страницы и не используйте фрейм в качестве хоста.
Я никогда не видел, чтобы коммерческая команда использовала страницы в wpf.

Вместо этого используйте contentcontrol для размещения ваших вещей.
Пользователь контролирует вместо страниц.

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

Обычно это будут модели представления, а не какой-либо объект пользовательского интерфейса вообще, и вы будете преобразовывать каждую модель представления в представление (с моделью представления в виде datacontext). Сохранение ссылки на viewmodel, как указано выше. Эта первая навигационная модель представления довольно распространена для дочерних представлений.
Почти все коммерческие команды используют MVVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...