Есть ли способ указать, какой элемент сводки нужно перемещать на странице сводок? - PullRequest
4 голосов
/ 27 июля 2011

Я знаю, как перемещаться от одного элемента сводки к другому, внутри страницы сводки, но что, если навигация полностью инициируется с другой страницы?

ОБНОВЛЕНИЕ:

Вот решениеЯ использовал, основываясь на ответе Мэтта Лейси:

От события нажатия кнопки на главной странице:

private void button_Click(object sender, RoutedEventArgs e)
        {
            string parameter = "myPivotItem1";
            NavigationService.Navigate(new Uri(string.Format("/MyPivotPage.xaml?parameter={0}", parameter), UriKind.Relative)); 
        }

Переопределил OnNavigatedTo для сводной страницы, и извлек строку запроса:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            string newparameter = this.NavigationContext.QueryString["parameter"];
            if (newparameter.Equals("myPivotItem1"))
            {
                myPivotControl.SelectedItem = myPivotItem1;
            }
            else if (newparameter.Equals("myPivotItem2"))
            {
                myPivotControl.SelectedItem = myPivotItem2;
            }
        }

1 Ответ

1 голос
/ 27 июля 2011

Вы можете установить SelectedIndex на индекс нужного вам элемента.

Будьте осторожны с отложенной загрузкой элемента.

Обновление:
На первой странице передайте индикатор того, какой pivotItem будет отображаться в строке запроса ** страницы, на которую вы переходите.
В событии OnNavigatedTo на странице, содержащей сводную область, создайте обработчик для события Loaded.из Pivot и используйте его для установки SelectedIndex.

** Доступны другие способы сделать это.

...