0

ここでどこが間違っていますか?

private void lstCars_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    string currCar = (sender as ListBox).SelectedItem as string;
    NavigationService.Navigate(new Uri("/ViewCarDetails.xaml?info=" + currCar, UriKind.Relative));
}

ここに移動しようとしているページがあります

        public ViewCarDetails(string registrationNum)
    {
         //stuff
    }

エラーが発生したときにプログラムがジャンプするコードを次に示します (App.xaml.cs 内)。

        private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
    {
        if (System.Diagnostics.Debugger.IsAttached)
        {
            // A navigation has failed; break into the debugger
            System.Diagnostics.Debugger.Break();
        }
    }

URIを確認しましたが、タイプミスはありません ありがとう

4

1 に答える 1

1

問題は、NavigationService を介してパラメーターを渡していることと、ViewCarDetails クラス コンストラクターが、渡していないパラメーターを予期していることです。

それを解決するには、パラメーターなしでコンストラクターを作成し、次のように NavigatedTo イベントからナビゲーションサービスを介して渡すパラメーターを取得する必要があります。

public ViewCarDetails() 
    { 
         //stuff 
    } 

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        string registrationNum = string.Empty;
        if (NavigationContext.QueryString.TryGetValue("index", out registrationNum))
        {
                         //do stuff
        }
    }

試してみて、お知らせください。

追加した:

public class ViewCarDetails : PhoneApplicationPage
{
    private string registrationNum;

    public ViewCarDetails() 
        { 
             //stuff 
        } 
    protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            registrationNum = string.Empty;
            if (NavigationContext.QueryString.TryGetValue("index", out registrationNum))
            {
                             //do stuff
            }
        }
    //other methods and properties
}

よろしく、

于 2012-04-19T06:49:38.627 に答える