8

Windows 8 アプリでフレームを変更しようとしています。このページのチュートリアルに従ってみましたが、同じエラーが発生し続けます。

次の行で ArgumentNullException が発生しています。

frameState[_pageKey] = pageState;

LayoutAwarePage.cs クラスの OnNavigatedFrom メソッドで。

このエラーが発生する理由がわかりません。コードにエラーを引き起こす可能性のあるものは何もないと感じているからです。ボタンの onclick 関数には次のコードがあります。

DateTime chosenDateTime = new DateTime(year, month, day, hours, minutes, seconds);
this.Frame.Navigate(typeof(MainPage), chosenDateTime.ToString());

そして、私の MainPage の OnNavigatedTo メソッドは次のようになります。

protected override void OnNavigatedTo(NavigationEventArgs e) {
   string parameter = (string)e.Parameter;
   if (parameter != "") {
       Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
       roamingSettings.Values["chosenDateTime"] = parameter;
       chosenDateTime = Convert.ToDateTime(e.Parameter);
   } else {
       Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
       if (roamingSettings.Values.ContainsKey("chosenDateTime")) {
           chosenDateTime = Convert.ToDateTime(roamingSettings.Values["chosenDateTime"].ToString());
       }
       if (roamingSettings.Values.ContainsKey("headline")) {
           chosenDateTextBlock.Text = roamingSettings.Values["headline"].ToString();
       }
   }
   SetTime();
}

これをどのように解決できるかについて、誰かが私に情報を教えてもらえますか?

ありがとう。

4

2 に答える 2

12

さて、私は自分の質問に対する答えを見つけました!

私が参照している両方のページで、少なくとも2つのメソッドの最小限の実装を実装する必要がありました。

protected override void OnNavigatedTo(NavigationEventArgs e) {
    base.OnNavigatedTo(e);
}

protected override void OnNavigatedFrom(NavigationEventArgs e) {
    base.OnNavigatedFrom(e);
}

そしてその

base.OnNavigatedFrom(e);
base.OnNavigatedTo(e);

メソッドに含めることが非常に重要でした。

于 2012-12-09T19:12:42.043 に答える