2

サーバー API を処理するクラスから (UriMapping を使用して) 別のページに移動しようとしていますが、機能しません。ここに私のコード:

public void processResponce(item Response)
{
    try
    {
        var token = Response.result.token;
        this.setToken("&token=" + token);
        Debug.WriteLine(this.apiUrl);

        (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/listItems", UriKind.Relative));
    }
    catch
    {
        Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                var messageFromServer = Response.error.message;
                MessageBox.Show(messageFromServer);

                Debug.WriteLine(messageFromServer);
            });
    }
}

SDK は、そのファイルが存在しないと言い続けます。しかし、ビュー (fe、MainPage.xaml.cs) にアタッチされたクラスから Navigate() を呼び出すと、ナビゲーションは成功します。誰でも助けることができますか?

アップデート。複数の *.xaml ページがありますが、このクラスは別のページに直接接続されていません。現在、このクラスは「JSON-RPC」と名付けられています。私は自分の問題を解決するためにさまざまな方法を試しました(彼を「パブリック部分JSON-RPC:PhoneApplicationPage」と名付けました)が...問題は:* .xamlページに添付されたクラスからNavigate()を呼び出す場合ツリーのように表示されるソリューション エクスプローラー - *.xaml ページ -> pagename.xaml.cs) で動作します。クラス JSON-RPC から Navigate() を呼び出すと、常に「ファイルが見つかりません」と表示されます。

UPD2. 解決策: 時々、自分がばかだと思うことがあります。答えは:

  Deployment.Current.Dispatcher.BeginInvoke(() =>
             {
                  (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/listItems", UriKind.Relative));
             });

この問題を解決するには、Dispatcher を呼び出す必要があります。

4

2 に答える 2

0

時々、自分がばかだと思うことがあります。答えは:

  Deployment.Current.Dispatcher.BeginInvoke(() =>
             {
                  (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/listItems", UriKind.Relative));
             });

この問題を解決するには、Dispatcher を呼び出す必要があります。

于 2011-08-08T02:55:54.047 に答える
0

次のことを確認してください。

  • URI の末尾に「.xaml」拡張子を含めています。
  • ファイルへのルートを完全に指定します (/listItems の場合、listItems.xaml がアプリのルート ディレクトリにあることを確認してください)。
  • xaml ファイルのビルド アクションは「Page」に設定されています。

また、RootVisual の代わりに RootFrame を使用できます。

これが私にとってうまくいく例です:

App.Current.RootFrame.Navigate(new Uri("/Pages/Error.xaml?Message=Application error", UriKind.Relative));
于 2011-08-07T16:47:53.610 に答える