tombstoneするときに選択していたアイテムを元に戻す方法
PanoramaやPivotのページから一度去った後に戻ってきたら、一番最初のアイテムが選択された状態に戻ってしまいます。
もちろん戻ってきたときにはページを去る前の状態になっていることが期待されるので、ページを去る前に選択していたアイテムに戻すようにしてみます。
OnNavigatedFromをオーバーライドし、ページから去るときに選択していたインデックスをStateに保持します。
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) { State["SelectedIndex"] = panorama.SelectedIndex; base.OnNavigatedFrom(e); }
OnNavigatedToをオーバーライドし、ページから戻ってきたらStateに保持してあるインデックスを使ってDefaultItemにセットします。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { // ページから戻ってきたら値を戻す if (State.ContainsKey("SelectedIndex")) { var selectedIndex = (int)State["SelectedIndex"]; panorama.DefaultItem = panorama.Items[selectedIndex]; State.Remove("SelectedIndex"); } base.OnNavigatedTo(e); }