これにより、ページが更新されます。
var _Frame = Window.Current.Content as Frame;
_Frame.Navigate(_Frame.Content.GetType());
_Frame.GoBack(); // remove from BackStack
- OnNavigatingFrom()を処理すると、ページのデータと状態を保存できます。
- OnNavigatingTo()を処理すると、ページのデータと状態をロードできます。
警告として、私のサンプルはページパラメータを考慮していません、あなたはそうする必要があるかもしれません。また、別の注意点として、私のサンプルはページを2回リロードします。ただし、BackStackから新しいエントリを削除するには、GoBack()が必要です。WPとは異なり、FrameにはRefresh()がありません。また、BackStackにはRemove()がありません。
アップデート
私はもはや上記のアプローチを使用しません。私はこれを使用します:
public bool Reload() { return Reload(null); }
private bool Reload(object param)
{
Type type = this.Frame.CurrentSourcePageType;
if (this.Frame.BackStack.Any())
{
type = this.Frame.BackStack.Last().SourcePageType;
param = this.Frame.BackStack.Last().Parameter;
}
try { return this.Frame.Navigate(type, param); }
finally { this.Frame.BackStack.Remove(this.Frame.BackStack.Last()); }
}