private void my_listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
FrameworkElement element = (FrameworkElement)sender;
SampleData item = (SampleData)element.DataContext;
int index = dataSource.IndexOf(item);
string s = "/Page"+index;
s +=".xaml";
NavigationService.Navigate(new Uri("s", UriKind.Relative));
}
catch
{
MessageBox.Show("Sorry..please try again..");
}
}
这是代码的一部分。这有什么问题?单击列表框中的项目时,它将转到导航失败功能。我想按下该项目并将其添加到导航页面。你能帮忙吗?
答案 0 :(得分:2)
删除“s”周围的引号:
NavigationService.Navigate(new Uri(s, UriKind.Relative));
如果你放s
,那么你正在使用变量s
的内容。如果您使用"s"
,那么您将创建一个包含文字值s
的新字符串。
答案 1 :(得分:0)
看看你从数据源获取索引的方式我觉得,你可能正在尝试将QueryString参数传递给你的页面..如此,试试这样
string s = "/Page.xaml?index=" + index;
并在目标网页加载中,读取该参数
string qryArgVal = "";
NavigationContext.QueryString.TryGetValue("index", out qryArgVal);
答案 2 :(得分:0)
我发现自己就是答案。在列表框中,获取索引的最简单方法是int k = ((ListBox)sender).SelectedIndex;
,现在你的k将具有索引值