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);
}