-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 に答える