0

次のように、WPF NavigationService を使用して、アプリケーション内のあるページから別のページに移動しています。

    private void Image_Forward_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        if (YesNo.Choice == "yes")
        {
            NavigationService.Navigate(new PageQuestion2Yes());
        }
        else if (YesNo.Choice == "no")
        {
            NavigationService.Navigate(new PageQuestion2No());
        }
    }

ページに複数回移動すると、そのたびに新しい Page オブジェクトが作成されることがわかりました。(ページにコンストラクターを追加してメッセージボックスを表示すると、メインアプリケーションが終了するとすべてのページが破棄されることがわかりました)

アプリケーションの有効期間中に作成される Page が 1 つだけになるように、NavigationService を使用するにはどうすればよいですか??

4

1 に答える 1

3

コードから、ナビゲーション後に Page の新しいオブジェクトが常に必要であることは明らかです。

// Calling constructor manually.
NavigationService.Navigate(new PageQuestion2Yes());

代わりに、クラス レベル フィールドにオブジェクトを格納し、常にそのオブジェクトに移動します。

private PageQuestion2Yes yesObject = new PageQuestion2Yes();

メソッドで、そのオブジェクトを常にナビゲーションに渡します。

NavigationService.Navigate(yesObject);
于 2013-12-28T19:53:07.467 に答える