Как я могу получить данные из моего приложения Windows Phone 7 - PullRequest
0 голосов
/ 09 декабря 2011

Мне нужна помощь. У меня есть 2 страницы в моем приложении. Страница № 1 с 3 кнопками.

   Button #1 = the name is "amount" and the content is "blank".

   Button #2 = the name is "tips" and the content is "blank".

   Button #3 = the name is "split" and the content is "blank".

Когда я нажимаю любую из кнопок, приложение переходит на страницу №2. На странице № 2 я хочу ввести некоторые значения, сохранить значение в IsolatedStorageSettings, затем извлечь его на странице № 1 и отобразить значение в содержимом нажатой кнопки.

Пример: кнопка № 3 была нажата. На странице № 2 я ввожу некоторые значения и сохраняю их в файле «SplitAmount» в IsolatedStorageSettings. Теперь на странице № 1 я хочу получить значение и отобразить его в качестве содержимого для кнопки № 3.

Вопрос: Как я могу сделать так, чтобы приложение знало, какая кнопка была нажата, чтобы я мог сохранить значение для нужного файла в IsolatedStorageSettings без необходимости создавать страницу для каждой кнопки?

PS: Я надеюсь, что объясню себя достаточно ясно, плюс я все еще новичок. Полегче на меня.

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Надеюсь, это поможет.:)

Глубокая навигация

И вам придется взглянуть на передачу данных между страницами.

0 голосов
/ 09 декабря 2011

Создайте один обработчик событий Click и назначьте его всем трем кнопкам. Затем передайте имя нажатой кнопки в качестве параметра на страницу №2.

Обработчик кликов выглядит так:

private void button_Click(object sender, RoutedEventArgs e)
{
    // get button name from sender - this can be button #1, #2 or #3
    string buttonName = ((Button)sender).Name;
    // craft Uri string so that it contains buttonName
    NavigationService.Navigate(new Uri("/Page2.xaml?buttonName=" + buttonName, UriKind.Relative));
}

Назначьте этот обработчик событию Click всех трех кнопок. Вы можете использовать окно свойств Visual Studio, чтобы сделать это. Посмотрите на код, как обработчик динамически получает имя кнопки из ее sender и добавляет его в строку Uri в качестве параметра buttonName.

Когда пользователь нажимает любую из кнопок, вызывается обработчик и переходит на Page2.xaml. Предположим, мы хотим получить доступ к buttonName прямо при открытии страницы. Для этого вы переопределяете метод OnNavigatedTo:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    if (NavigationContext.QueryString.ContainsKey("buttonName"))
        MessageBox.Show("The user pressed button " + NavigationContext.QueryString["buttonName"]);
}

Переданный параметр доступен через словарь QueryString. Код проверяет, существует ли запись buttonName. Если это так, он отображает окно сообщения.

Конечно, вы можете получить buttonName в любое время, нет необходимости переопределять OnNavigatedTo. Возможно, вы прочитаете это позже, когда сохраните данные в изолированном хранилище.

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