WPF NavigationService每次都创建新页面

时间:2013-12-28 17:21:05

标签: c# wpf navigationservice

我正在使用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对象时。 (我注意到我在我的页面中添加了一个构造函数并显示了一个消息框,我发现当主应用程序退出所有页面时会被销毁)

如何使用NavigationService,以便在应用程序的生命周期内只创建一个Page?

1 个答案:

答案 0 :(得分:3)

从您的代码中可以看出,您希望在导航后始终需要新的Page对象:

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

而是将对象存储在类级别字段中,并始终导航到该对象:

private PageQuestion2Yes yesObject = new PageQuestion2Yes();

现在在方法中,该对象始终在导航上传递:

NavigationService.Navigate(yesObject);