如何在Loaded之前停止从页面的构造函数或事件加载页面

本文关键字:构造函数 加载 事件 Loaded | 更新日期: 2024-09-19 08:39:56

我有一个WPF浏览器应用程序,它有一个StartupUri="StartPage.xaml"
在该页面的构造函数中,我正在检查它是否可以
连接到服务器上的数据库。

现在,如果它失败了,我想停止加载该页面,并导航到另一个页面
问题是——"当页面引发Loaded事件时,页面只能获得对其NavigationService的引用。"(http://msdn.microsoft.com/en-us/library/ms750478.aspx)
…并且当Loaded被提升时,页面已经"开始显示",
这意味着,如果我从Loaded事件导航到另一个页面,它仍然会显示第一个页面
(不过非常简短),然后再加载第二页。

那么,我该如何防止这种情况发生呢?

既然我知道它在建造时不应该提前出现,
但是当时的NavigationService为空。如果它不是我的应用程序启动时加载的第一个页面,这就不会有问题。也许我可以在App:Application类(目前为空)中测试连接,然后决定StartupUri应该是什么。如果这是一个好方法,请提供一个小例子。编辑:挖掘机

如何在Loaded之前停止从页面的构造函数或事件加载页面

您提到的方法-将数据库检查放在应用程序的OnStartup方法中-会起作用。但在启动前,当你进行数据库查找时,屏蔽用户界面将是一种可怕的用户体验。最好先导航到启动屏幕之类的地方,然后根据需要从那里导航。