【问题标题】:How can I navigate to a certain Pivot page in Windows Phone?如何导航到 Windows Phone 中的某个 Pivot 页面?
【发布时间】:2014-01-09 09:25:20
【问题描述】:

我创建了一个包含两个链接的 MainPage。两者都会将用户带到一个新的 Pivot 页面。 但是,第一个链接将打开 Pivot 的第一页,而第二个链接将打开 Pivot 的第二页。

到目前为止,我有以下代码:

主页:

NavigationService.Navigate(new Uri("/PivotTester.xaml?goto=" + i, UriKind.Relative));

然后在 PivotTester 页面上:

namespace CelticNow
{
public partial class PivotTester : PhoneApplicationPage
{
    PivotTester pivot = new PivotTester();

    public PivotTester()
    {
        InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        string strItemIndex;
        if (NavigationContext.QueryString.TryGetValue("goto", out strItemIndex))
            pivot.SelectedIndex = Convert.ToInt32(strItemIndex);

        base.OnNavigatedTo(e);
    }
}
}

我在“Pivot pivot = new...”中添加了因为使用 PivotTester.SelectedIndex 不起作用。

谁能提供一个解决方案来说明我将如何完成这项工作?谢谢。

【问题讨论】:

  • 因为你已经创建了一个新的实例,你要做的就是将 Name 属性设置为你在设计中使用的 Pivot 控件,即设置 SelectedIndex
  • 谢谢,但我一直在“SelectedItem”上收到错误 - “PivotTester 不包含它的定义”。有什么想法吗?
  • 请注意,pivottester 是您的当前页面 (:
  • 您需要将 SelectedIndex 设置为枢轴控件
  • 对不起——我还是迷路了。我该怎么做?

标签: windows-phone-7 windows-phone-8 pivotviewer


【解决方案1】:

这将对您有所帮助,从您的代码中删除下面的代码行

//Remove if not necessary
protected override void OnNavigatedTo(NavigationEventArgs e)
 {
   string strItemIndex;
    if(NavigationContext.QueryString.Contains("goto"))
    {
      strItemIndex=NavigationContext.QueryString["goto"].ToString();
      pivotControl.SelectedIndex = Convert.ToInt32(strItemIndex);
    }

   base.OnNavigatedTo(e);
  }

编辑

在您的 xaml 中进行更改

 <Grid x:Name="LayoutRoot" Background="Transparent">
            <!--Pivot Control-->
            <controls:Pivot Title="MY APPLICATION" x:Name="pivotControl">
                <!--Pivot item one-->
                <controls:PivotItem Header="one">
                    <Grid/>
                </controls:PivotItem>
                <!--Pivot item two-->
                <controls:PivotItem Header="two">
                    <Grid/>
                </controls:PivotItem>
            </controls:Pivot>
        </Grid>

【讨论】:

  • @user3176804 你是在使用枢轴控制还是其他什么??
  • 我的 MainPage 也是一个 Pivot (MainPage.xaml) 和 PivotTester.xaml - 仅此而已
  • @user3176804 你能分享一下xaml吗?可能会更好地了解我们如何为您提供帮助。
  • code code
  • @user3176804 我对我的 ans 进行了更改。请检查一下,我相信它对你有帮助。删除 PivotTester pivot = new PivotTester();好像没用。
【解决方案2】:

我使用此代码:pivot.SelectedItem = x:Name of the pivot item。工作良好。

【讨论】:

  • 谢谢,但我一直在“SelectedItem”上收到错误 - “PivotTester 不包含它的定义”。有什么想法吗?
  • 您添加了任何 PivotItems 吗?
  • 是的,我有两个枢轴项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多