同様のロジックを含む 2 つのページがあります。ページをロードし、他のボタンを表示/非表示にするいくつかのボタンをクリックして、次のページに進みます。次のページを押したときに戻るボタンをクリックすると、前のページに戻ります。
違いは、1 つのページ (FirstPage) には、戻るボタンをクリックしたときに呼び出されるコンストラクターがあり、デフォルトをリセットするための呼び出しがあることです。他のページ (SecondPage) ではコンストラクターが呼び出されず、その理由がわかりません。
public FirstPage()
{
InitializeComponent();
DisplayStuff();
}
FirstPage が にKeepAlive
設定されましたFalse
。
public SecondPage(object arg1, object arg2)
{
InitializeComponent();
DisplayStuff(arg1, arg2);
}
このページも にKeepAlive
設定されていFalse
ます。これら 2 つのページは何も継承せず、プロパティをオーバーライドするものはありません。私が見ることができる唯一の違いは空のコンストラクターであるため、SecondPage に空のコンストラクターを与えてみましたが、まだうまくいきません。
私は WPF に比較的慣れていないので (6 か月ごとに 1 時間か 2 時間作業しています)、何が足りないのでしょうか?
関連する場合の戻るボタンを次に示します。
<Button Command="{x:Static NavigationCommands.BrowseBack}" />
編集: [戻る] ボタンをクリックすると、SecondPage の状態が保持されません。DisplayStuff
まだ呼び出されていないため、空のページをロードするだけです。
ナビゲーション コード:
NavigateTo(new SecondPage(arg1, arg2));
protected void NavigateTo(Page page)
{
NavigationService.Navigate(page);
}