Сейчас я работаю над своим первым приложением WP7 и столкнулся с некоторыми вопросами, на которые я не смог ответить, несмотря на то, что прочитал, что я смог найти в Интернете. Пожалуйста, рассмотрите приложение, которое имеет главную страницу, страницу параметров и страницу результатов. На странице параметров пользователь может вводить или обновлять номера в различных текстовых полях. Нажатие кнопки «Назад» возвращает пользователя на главную страницу, где есть кнопка «Рассчитать». Нажатие на эту кнопку должно привести к получению данных, выполнить с ними вычисления и перенести пользователя на страницу результатов, представляющую сетку с результатами.
В файле Calculator.cs у меня есть класс Calculator внутри папки с названием Models. У меня также есть файлы MainViewModel.cs, ParametersViewModel.cs и ResultsViewModel.cs в папке ViewModels и соответствующий файл MainPage.xaml вместе с Parameters.xaml и Results.xaml в папке с именем Views. Я предполагаю, что все данные будут обрабатываться в экземпляре класса Calculator, а затем набор результатов будет возвращен и направлен в Results.xaml. Я просто в растерянности относительно того, где создать экземпляр класса Calculator, передать ему данные, а затем получить результаты. Я также несколько озадачен тем, как я буду запускать автоматическую навигацию на странице результатов после завершения расчета.
Любая помощь с этим будет принята с благодарностью.
ОБНОВЛЕНИЕ: Передача сложного объекта на страницу при навигации в приложении WP7 Silverlight содержит дополнительную информацию на эту тему. Я могу зайти в App.xaml.cs и добавить что-то вроде этого:
public class Foobar
{
public string barfoo = "hah!";
}
public static Foobar myfoob = new Foobar();
Затем получите доступ к нему со страницы ViewModel, например, AboutViewModel.cs, вот так:
public AboutViewModel()
{
string goo = App.myfoob.barfoo;
}
Но на данный момент я все еще не уверен, какие непредвиденные эффекты могут иметь. На этом этапе я собираюсь заняться сериализацией / захоронением, чтобы увидеть, что происходит с этим подходом или с использованием одного и того же DataContext на разных страницах. В противном случае один из постеров в указанной выше ссылке сериализует параметры и передает их между страницами. Моя проблема заключается в том, существует ли ограничение по количеству символов, как при использовании HTTP GET. Кажется, есть: Пределы URI в Silverlight