-1
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..");
    }
}

这是代码的一部分。这有什么问题?当我单击列表框中的项目时,它会进入导航失败功能。我想按下该项目并将其添加到导航页面。你能帮忙吗?

4

3 回答 3

2

删除 "s" 周围的引号:

NavigationService.Navigate(new Uri(s, UriKind.Relative));

如果你放s,那么你正在使用变量的内容s。如果您使用"s",那么您将创建一个包含文字值的新字符串s

于 2012-10-16T11:14:10.897 回答
0

看看你从数据源获取索引的方式我觉得,可能是你试图将 QueryString 参数传递给你的页面。如果是这样,试试这样

string s = "/Page.xaml?index=" + index;

并在您的目标页面加载中,阅读该参数

string qryArgVal = "";
NavigationContext.QueryString.TryGetValue("index", out qryArgVal);
于 2012-10-16T11:44:47.903 回答
0

我找到了自己的答案。在列表框中获取索引的最简单方法是int k = ((ListBox)sender).SelectedIndex;,现在您的 k 将具有索引值

于 2012-10-17T00:38:42.783 回答