Nano Hash - криптовалюты, майнинг, программирование

Постоянный экземпляр страницы Windows Phone на протяжении всего времени жизни приложения

Я работаю над простым приложением для Windows Phone, которое в основном имеет следующие функции:

  • Страница 1, есть кнопка, чтобы получить местоположение пользователя и перейти на страницу 2
  • Страница 2, используйте местоположение пользователя и управление картой для отображения карты, а центр просмотра - это местоположение пользователя. На панели приложений есть кнопка для перехода на страницу 3.
  • Страница 3, Показать список ближайших мест на этой странице, и как только пользователь выберет одно из мест, он вернется на страницу 2, чтобы закрепить место в управлении картой.

Итак, вот вопрос:
Я хочу сохранить данные страницы 2 в этом случае, чтобы мне не приходилось повторно инициализировать страницу 2 каждый раз, когда я возвращаюсь со страницы 3. Было бы идеально, если бы я мог сохранить экземпляр страницы 2. где-то и использую это каждый раз, когда я хочу вернуться со страницы 3. Пока я знаю, что есть два подхода, один из которых находится в Page2 xaml, у меня может быть что-то вроде:

<Page
  x:class "Page2.keepPageAlive"
  ...

Другой использует AddBackEntry. Но я не уверен, какой из них подходит в моем случае, или есть ли другой хороший подход.

Поделитесь своей идеей, спасибо.


Ответы:


1

Пока вы переходите на страницу 3 со страницы 2 и возвращаетесь на страницу 2 с помощью NavigationService.GoBack(), экземпляр страницы 2 будет поддерживаться. Так что вам в принципе нечего менять.

25.07.2012
  • Но в этом случае я не думаю, что смогу выполнить что-то вроде возврата и закрепления выбранного места на карте. Поскольку я никак не могу вызвать метод на странице 2 без экземпляра страницы 2, предшествующего вызову GoBack(), я прав? 25.07.2012
  • Сохраните ссылку на класс, используя статическое свойство (это может быть ваша модель представления, если вы используете шаблон MVVM). На странице 3 сохраните местоположение места в свойстве этого класса. На странице 2 переопределите метод OnNavigatedTo, проверьте, заполнено ли свойство местоположения статического класса, и закрепите это местоположение. 25.07.2012

  • 2

    В стеке навигации WP7 страница 2 по-прежнему будет существовать. Итак, если вы перешли со страницы 1 на страницу 2 и страницу 3, все 3 страницы существуют.

    Если вы вызовете NavigationService.GoBack() со страницы 3, она вытолкнет страницу 3 и восстановит предыдущий экземпляр страницы 2, а не создаст новый экземпляр страницы 2. То же самое происходит, когда вы нажимаете кнопку «Назад».

    Только если вы вызовете NavigationService.Navigate(), будет создан новый экземпляр.

    25.07.2012
  • Привет, спасибо за ответ, но, как я уже упоминал в ответе KooKiz, в этом случае я не думаю, что я могу каким-либо образом выполнить что-то вроде возврата и закрепления выбранного места на карте. Поскольку я никак не могу вызвать метод на странице 2 без экземпляра страницы 2, предшествующего вызову GoBack(); 25.07.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..