我有一个数据透视页面,有一个固定的pivotitem,并根据数据,动态数量的其他pivotitems。固定的pivotitem保持创建的新的pivotitems的超链接列表,并且想法是点击任何链接并导航到该pivotitem。wp7:导航动态pivotitems在一个枢轴
这将是这个样子:
FixedItem | DynamicItem1 | DynamicItem2
链接:DynamicItem1
链接:DynamicItem2
我现在面临的问题是与超链接点击,它不带我去各个pivotitem,而是带我去枢轴页面没有动态的pivotitems。我正在使用以下代码进行导航:
hyperlink.NavigateUri = new Uri("/MainPage.xaml?name=" + p.name, UriKind.Relative);
其中,p.name是pivotitem的名称。我不确定这是否是正确的语法,但是令人困惑的是,所有创建的pivotitems都会丢失,只剩下fixeditem - 就好像它正在打开pivot页面的新实例一样。
然后,在我的OnNavigatedTo尝试以下操作:
if (NavigationContext.QueryString.ContainsKey("name"))
{
// URI is '/page?name=PivotItemToSelect'.
string selectedPivotItem = e.Uri.Query.Split('=').Last();
// Match PivotItemToSelect with the PivotItem's Name.
PivotItem pivotItemToShow = pivot.Items.Cast<PivotItem>().Single(i => i.Name == selectedPivotItem);
pivot.SelectedItem = pivotItemToShow;
base.OnNavigatedTo(e);
}
在第一行,我得到一个异常,此操作不能在一个“相对” URI来完成。任何其他方式我可以得到这些信息?
如果我将pivotitem名称更改为一个数字,比如i,并将该i作为索引传递,我得到以下代码作为超链接按钮的_click方法 - 但在实际使用中,该名称很可能是一个文本字符串:
pivot.SelectedIndex = int.Parse(i);
我不知道我是如何完全离开赛道,并会感谢任何指向正确方向的指针。
谢谢。
什么是更好的导航方式?我正在开发一个messenger类型的应用程序,当新的聊天窗口打开时,我将它们添加到数据透视表中。主枢纽页面将链接到每个打开的聊天记录,因此用户可以直接跳到该页面。这就是为什么我想要有多个pivotitems,所以用户只需滑动并浏览pivotitems。 – wp7dev 2011-02-13 11:01:28