Как получить доступ к объектам между двумя страницами xaml в wp7?

Я работаю над приложением wp7, состоящим из двух страниц xaml. Страницы: Страница 1 и Страница 2. Страница 1 состоит из ползунка, который имеет диапазон значений от 0 до 10. Моя программа такова: если я сдвину ползунок до значения = 10, он должен перейти на страницу 2. Все идет нормально. Но когда страница 2 загружена, я хочу, чтобы ползунок установил значение 0. Но когда я нажимаю клавишу «Назад» на своем телефоне с Windows, страница 2 переходит к странице 1, а ползунок имеет значение = 10 (которое должно быть 0). Я не могу кодировать слайдер со страницы 2, потому что он не может получить к нему доступ! Как я должен это делать?

Программа для Page1(MainPage)

namespace ProgressBar
{
    public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            if (slider1.Value == 10)
            {
                NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
            }
        }
    }
}

person Siddharth Thevaril    schedule 17.09.2011    source источник


Ответы (2)


в этом случае просто сбросьте ползунок на 0 перед переходом на страницу 2 или при переходе назад (для этого есть событие в NavigationService).

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

person Random Dev    schedule 17.09.2011
comment
Я попытался сбросить ползунок на 0 перед навигацией. То, что я сделал, находится вне блока if (), я установил значение как slider1.value = 0; но когда я запускаю программу, ползунок вообще не двигается! теперь что мне делать? - person Siddharth Thevaril; 17.09.2011
comment
вне блока if? Вы должны сделать это перед вызовом NavigationService.Navigate. - person Random Dev; 17.09.2011
comment
После навигационного вызова также работает. Вызов Navigate не эквивалентен оператору return, поэтому весь код в том же дереве по-прежнему выполняется. - person Claus Jørgensen; 17.09.2011

Сбросьте значение ползунка на 0 в Page.OnNavigatedTo.

person Claus Jørgensen    schedule 17.09.2011
comment
Как это сделать? Я предоставил свой код, пожалуйста, помогите мне с синтаксисом и кодированием в соответствии с вашей логикой. - person Siddharth Thevaril; 17.09.2011