サーバー 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 を呼び出す必要があります。