Сохранение состояния страницы в 3-страничном приложении в WP7 - PullRequest
0 голосов
/ 20 октября 2011

Ну, это мой первый вопрос, и, пока я искал, я не нашел решения для своей проблемы. Я пишу свое первое приложение rssreader для WP7, и у меня возникла проблема с состоянием страницы. У меня 3 страницы и навигация идет так главная страница >>> listitemspage >>> подробная страница. Главная страница - это модель с привязкой к базе данных с предварительно настроенными элементами категории каналов (URL-адресами и именами), listitempage - это страница, на которой я реализовал веб-клиент для чтения элементов канала, а на странице сведений я передаю информацию о выбранном элементе канала из списка элементов. Состояние страницы, работающее в следующих ситуациях:

mainpage >>> start button >>> back button (OK)<br/>
listitempage >>> start button >>> back button (Doesn't work)<br/>
detailspage >>> start button >>> back button (OK)<br/>

На странице сведений я сохраняю состояние страницы, используя OnNavigatedTo / From и State.TryGetValue. Кажется, это работает, но если я создаю кнопку с задачей браузера, чтобы пользователь мог перейти к полной статье, когда браузер открыт и пользователь нажимает кнопку «Назад», работает состояние страницы сведений. Если пользователь нажимает кнопку «Назад» во второй раз, приложение закрывается, а не возвращается к списку страниц. Так что у меня тоже есть эта проблема:

detailspage >>> browserbuttontask >>> backbutton >>> restorepage >>> backbutton->exit<br/>

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 20 октября 2011

Если вы хотите сохранить состояние страницы, не связываясь с IsolatedStorage, попробуйте SterlingDB. Он использует IsolatedStorage, но он очень прост в настройке и использовании. Вы можете добавить стерлинг с помощью Nuget. Вам нужно будет сохранить данные, которые вы хотите сохранить в классе, но сохранить и загрузить их просто.

Помимо этого вы также можете посмотреть на Caliburn Micro. Он добавляет жизненный цикл страницы в ваши ViewModels, такие как OnInitialize, OnActivate, OnDeactivate. Он также добавляет некоторые полезные вещи для WP7, такие как автоматическое сохранение свойств ViewModel в изолированное состояние или состояние телефона.

http://www.sterlingdatabase.com/

0 голосов
/ 24 октября 2011

Похоже, что ваше приложение выдает исключение при восстановлении состояния на странице списка, что приводит к завершению работы приложения.

Вы пытались делать все это с подключенным отладчиком? Он должен показать вам, какое исключение выдается и где.

0 голосов
/ 20 октября 2011

Я бы порекомендовал использовать помощник Tombstone для кодекса, написанный Мэттом Лэйси (из группы пользователей Windows Phone).

http://tombstonehelper.codeplex.com/

Он либо решит все ваши проблемы очень легко, либо, по крайней мере, покажет вам, как записывать состояния страниц в изолированное хранилище для долгосрочного использования (помните, что кэш состояний сохраняется только при включенном устройстве и до тех пор, пока телефон не должен очищать память)

Надеюсь, это поможет Rgds Simon

...