【问题标题】:WPF NavigationService creating new Pages each timeWPF NavigationService 每次创建新页面
【发布时间】:2013-12-29 03:53:07
【问题描述】:

我正在使用 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 以便在我的应用程序的生命周期内只创建一个页面??

【问题讨论】:

    标签: c# wpf navigationservice


    【解决方案1】:

    从您的代码中很明显,您希望在导航后始终使用新的 Page 对象:

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

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

    private PageQuestion2Yes yesObject = new PageQuestion2Yes();
    

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

    NavigationService.Navigate(yesObject);
    

    【讨论】:

    • 那么,如果我调用 NavigationService.Navigate(new Uri(xyz)) 会不会总是为我创建一个新页面?
    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多