WP7 pivotcontrol запомнить выбранный элемент - PullRequest
1 голос
/ 19 ноября 2010

В проекте шаблона сводного управления Windows Phone 7 страница сводного управления не запоминает выбранный элемент, если вы переходите на страницу поиска из определенного элемента сводного меню и выбираете снова на телефоне. Он всегда возвращается к первому элементу центра управления.

Как вы измените это поведение, чтобы, если вы были на 3-м элементе пивота, и вы переходите к поиску и наносите ответный удар, вы возвращаетесь к 3-му элементу пивота.

Pratik

1 Ответ

3 голосов
/ 19 ноября 2010

Когда вы нажимаете кнопку «Поиск», ваше приложение замирает (другими словами, приложение останавливается и хранится в памяти так долго, как это возможно). Это полностью зависит от вас (разработчика), как бы вы справились с этим.Сама система делает только несколько вещей, чтобы вернуть последнее состояние назад - например, перейти на последнюю страницу.Вы можете думать об этом как куки в браузере.Если вы нажмете кнопку «Назад», браузер проверит, существует ли cookie, и загрузит содержимое с информацией из cookie.

Есть несколько способов справиться с этим и дать пользователю лучший UX.Вы можете сохранить состояние в коллекции State или непосредственно в IsolatedStorage.Используйте событие в App.xaml.cs

    // Code to execute when the application is launching (eg, from Start)
    // This code will not execute when the application is reactivated
    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
    }

    // Code to execute when the application is activated (brought to foreground)
    // This code will not execute when the application is first launched
    private void Application_Activated(object sender, ActivatedEventArgs e)
    {

    }

    // Code to execute when the application is deactivated (sent to background)
    // This code will not execute when the application is closing
    private void Application_Deactivated(object sender, DeactivatedEventArgs e)
    {
    }

    // Code to execute when the application is closing (eg, user hit Back)
    // This code will not execute when the application is deactivated
    private void Application_Closing(object sender, ClosingEventArgs e)
    {
    }

или события для вашей страницы со сводкой

    // set state
    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
#if DEBUG
        Debug.WriteLine("TOMBSTONING EVENT: OnNavigatedFrom at {0}", DateTime.Now.ToLongTimeString());
#endif
        //try to locate state if exists
        if (State.ContainsKey(App.STATE_KEY))
        {
            //clear prev value
            State.Remove(App.STATE_KEY);
        }
        State.Add(App.STATE_KEY, this.State);
        base.OnNavigatedFrom(e);
    }

    // get state
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        // try to locate the state from previous run
        if (State.ContainsKey(App.STATE_KEY))
        {
            // return previous state
            var s = State[App.STATE_KEY] as Info;
            if (s != null)
            {
#if DEBUG
                Debug.WriteLine("TOMBSTONING EVENT: OnNavigatedTo at {0}", DateTime.Now.ToLongTimeString());
#endif
                this.State = s;
            }

        }

        base.OnNavigatedTo(e);
    }

, используйте этот шаблон для своей страницы с сводкой и сохраните последний индекс вашегоповоротный контроль.попробуйте и ловить блоки, было бы неплохо.

Обзор Жизненный цикл <- фильм </p>

...