【发布时间】:2011-06-26 06:40:30
【问题描述】:
我有一个数据透视页面,其中包含一个固定的数据透视项,并且根据数据,还有动态数量的附加数据透视项。固定的数据透视项保留了创建的新数据透视项的超链接列表,其想法是单击任何链接并导航到该数据透视项。
看起来像这样:
固定项目 | 动态项目1 | DynamicItem2
链接:DynamicItem1
链接:DynamicItem2
我面临的问题是单击超链接,它不会将我带到相应的数据透视项,而是将我带到没有动态数据透视项的数据透视页面。我正在使用以下代码进行导航:
hyperlink.NavigateUri = new Uri("/MainPage.xaml?name=" + p.name, UriKind.Relative);
其中 p.name 是枢轴项的名称。我不确定这是否是正确的语法,但令人困惑的是所有创建的数据透视项都丢失了,只留下固定项 - 好像它正在打开数据透视页面的新实例。
然后,在 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 上完成。我还有其他方法可以获取这些信息吗?
如果我将数据透视项名称更改为一个数字,比如 i,并将 i 作为索引传递,我得到以下代码作为超链接按钮的 _click 方法工作 - 但在实际使用中,该名称很可能是文本字符串:
pivot.SelectedIndex = int.Parse(i);
我不确定自己的偏离程度如何,如果有任何正确方向的指点,我将不胜感激。
谢谢。
【问题讨论】:
标签: windows-phone-7 navigation pivot selecteditem