WP7: передать параметр на новую страницу? - PullRequest
23 голосов
/ 10 ноября 2010

В приложении Windows Phone 7 Silverlight я вызываю новую страницу, используя

NavigationService.Navigate(new Uri("/View/SecondPage.xaml", UriKind.Relative));

Теперь я хочу передать параметры на новую страницу. Я понимаю, что простой параметр может быть передан с помощью:

NavigationService.Navigate(new Uri("/View/TilgungsratePage.xaml?id=4711", UriKind.Relative));

и прочитайте на новой странице, используя

protected override void OnNavigatedTo(Microsoft.Phone.Navigation.PhoneNavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    String id = NavigationContext.QueryString["id"]; 
} 

Для простых параметров это нормально, но как мне передать список?
Сложные объекты?
Что-нибудь, кроме простых значений?

Ответы [ 5 ]

21 голосов
/ 21 ноября 2010

В своей книге «Программирование Windows Phone 7» (глава 6, раздел 3, «Обмен данными между страницами») Чарльз Петцольд рекомендует свойства класса App (производного от Application).Каждая страница имеет доступ к ней через Application.Current.Также интересен словарь PhoneApplicationService.Current.State.Это полезно для надгробия.Целую главу может быть интересно читать.

2 голосов
/ 11 ноября 2010

Вы также должны взглянуть на шаблон MVVM и класс мессенджера.

Вот несколько ссылок:

Обзор MVVM

MVVM Foundation Messenger

Хороший ТАК вопрос о мессенджере от MVVM Light

Легкий блог MVVM

0 голосов
/ 01 мая 2012

Используйте глобальные переменные, создайте новый класс для GlobalVariables:

public static class GlobalVariables
{
   public static string my_string = "";
   public static int my_int = -1;
}

Затем вы можете получить доступ к классу глобальных переменных для разных страниц:

GlobalVariables.variable_name;
0 голосов
/ 05 февраля 2012

Вы должны сохранить объект в IsolatedStorage.

Просто сериализуйте его с помощью библиотеки Json.net и сохраните строку в IsolatedStorage.На следующей странице получите строку из IsolatedStorage и преобразуйте ее обратно в нужный объект с помощью библиотеки json.net!

0 голосов
/ 19 января 2012

посмотрите, как я реализовал навигацию в PhoneCore Framework: Фреймворк для создания приложения WP7 . Вскоре я построил свой навигационный сервис поверх навигации WP7. Он использует настраиваемое отображение страниц и позволяет автоматически передавать параметры для просмотра модели.

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