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..");
}
}
这是代码的一部分。这有什么问题?当我单击列表框中的项目时,它会转到导航失败功能。我想按下该项目并将其添加到导航页面。你能帮忙吗?
去掉"s"两边的引号:
NavigationService.Navigate(new Uri(s, UriKind.Relative));
如果输入s
,则使用变量的内容s
。如果使用 "s"
,则正在创建一个包含文本值 s
的新字符串。
看看你从数据源获取索引的方式,我觉得,可能是你试图将 QueryString 参数传递给你的页面。如果是这样,请尝试这样做
string s = "/Page.xaml?index=" + index;
在目标页面加载中,阅读该参数
string qryArgVal = "";
NavigationContext.QueryString.TryGetValue("index", out qryArgVal);
我发现自己 answer.in 列表框 获取索引的最简单方法是int k = ((ListBox)sender).SelectedIndex;
现在你的 k 将具有索引值