Небольшой совет: укажите, используете ли вы Silverlight или WinRT, так как это имеет большое значение. Я предполагаю, что вы используете Silverlight здесь.
Как уже говорилось, глобальные переменные почти никогда не являются хорошей идеей.
Рекомендация: Всегда используйте queryString и всегда передавайте только идентификаторы в запросе.
Это значит, что ваши данные хранятся в каком-то хранилище и всегда читают его оттуда на любой странице. Если вы хотите передать сложные объекты, поместите их в хранилище, сообщите новой странице, что идентификатор и новая страница загружают его из хранилища.
Если ваше приложение получает прекращено (захоронен) в фоновом режиме и возобновлен на ваших деталях-страниц, он всегда может быть, что ваши глобальные переменные пусты.
Он также улучшает вашу ремонтопригодность: все данные, к которым обращается страница, будут загружены на эти страницы code/codebehind/viewmodel; Вам не нужно проверять другие части приложения, чтобы узнать, откуда эти данные.
Дополнительная подсказка:
Это помогло мне много, чтобы думать о Silverlight приложения, как «веб-приложение»: Страницы являются отдельными страницами и viemodels являются серверами баз данных , Невозможно передавать данные между этими страницами, кроме строки запроса.
, так что вы имеете в виду, если у меня есть сложный объект, я буду использовать общедоступное свойство, и у меня будут отдельные значения, я буду использовать строку запроса? – vir
В общем случае, да. – demas