2014-12-16 2 views
1

Передача данных от страницы к странице для Windows Phone 8,1Как передавать данные между различными страницами в Windows Phone 8,1

я нашел эту статью:

http://www.windowsapptutorials.com/windows-phone/how-to-pass-data-between-different-pages-in-windows-phone-application/

и я понял, это очень хорошо,

есть несколько вопроса я пришел после прочтения этой статьи является:

[1], какой метод лучше, в котором сценарии? [2] В чем преимущества всех трех методов?

ответ

0

Небольшой совет: укажите, используете ли вы Silverlight или WinRT, так как это имеет большое значение. Я предполагаю, что вы используете Silverlight здесь.

Как уже говорилось, глобальные переменные почти никогда не являются хорошей идеей.

Рекомендация: Всегда используйте queryString и всегда передавайте только идентификаторы в запросе.

Это значит, что ваши данные хранятся в каком-то хранилище и всегда читают его оттуда на любой странице. Если вы хотите передать сложные объекты, поместите их в хранилище, сообщите новой странице, что идентификатор и новая страница загружают его из хранилища.

  • Если ваше приложение получает прекращено (захоронен) в фоновом режиме и возобновлен на ваших деталях-страниц, он всегда может быть, что ваши глобальные переменные пусты.

  • Он также улучшает вашу ремонтопригодность: все данные, к которым обращается страница, будут загружены на эти страницы code/codebehind/viewmodel; Вам не нужно проверять другие части приложения, чтобы узнать, откуда эти данные.


Дополнительная подсказка:

Это помогло мне много, чтобы думать о Silverlight приложения, как «веб-приложение»: Страницы являются отдельными страницами и viemodels являются серверами баз данных , Невозможно передавать данные между этими страницами, кроме строки запроса.

0

Открытое свойство в App.xaml.cs и глобальных переменных вызывает загрязнение пространства имен и делает приложение менее проверяемым, поэтому я предпочитаю использовать QueryString.

С другой стороны, иногда мне нужно передать сложный объект или даже коллекции сложных объектов, и в этом случае публичное свойство в App.xaml.cs более предпочтительным, на мой взгляд.

+0

, так что вы имеете в виду, если у меня есть сложный объект, я буду использовать общедоступное свойство, и у меня будут отдельные значения, я буду использовать строку запроса? – vir

+0

В общем случае, да. – demas

Смежные вопросы