1

ページ間の状態を保持するために、チュートリアルhereに従いました。

ただし、プログラムでこのページに戻ると、Stateディクショナリは常に空です。ここで何が問題になっているようですか?

エミュレータ 8.0.10322 720P でこの動作をテストしました。

これが私がすることです:

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

        if (e.NavigationMode != NavigationMode.Back)
        {
            State["IS"] = ResultsList.ItemsSource;
            State["SI"] = ResultsList.SelectedItem;
            State["dgtest"] = new Data();
            State["test"] = "gi2";
        }
    }

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

        if (e.IsNavigationInitiator && e.NavigationMode != NavigationMode.Back)
        {
            ResultsList.ItemsSource = (System.Collections.IList) State["IS"];
            ResultsList.SelectedItem = State["SI"];
        }
    }

ItemsSourceのオブジェクトは、次のように定義されたデータ型です。

[DataContract]
public class Data
{
    [DataMember]
    public string Datum { get; set; }
}

編集:プログラムで戻るには、私は呼び出していますNavigationService.Navigate(new Uri("/mypages/page.xaml", UriKind.Relative));

4

0 に答える 0