ページ間の状態を保持するために、チュートリアル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));