2011-10-07 86 views
0

我有一个Silverlight导航应用程序,我加载并初始化MainPage.aspx加载中的很多东西。导航应用程序 - 启动页面启动

所有页面(视图)都依赖于该数据的加载。

但是我的用户经常在他们的桌面上为我的应用程序添加一个Internet快捷方式。但链接经常指向这样一个特定的页面:

http://myServer/MyApp/default.aspx#/TheView

我想强迫用户去“默认”的观点(而忽略#/查看参数)当应用程序启动。

什么是我能做到的最好方法?

回答

1

我不认为'避免'链接是个好主意。当应用程序没有问题时,应该以某种方式构建应用程序。例如,您可以在加载所有内容时直接发送消息,直到该消息可以禁用相应的UI(等待数据时)为止。 Messenger(或Prism中的EventAggregator)是一种发布者 - 订阅者模式,用于实现组件之间的通信,而无需彼此参考。如果你不知道它,看看MVVMLight信使棱镜EventAggregator

但是,如果第一个选项是不行的,你可以用框架控件的JournalOwnership性能发挥:

http://msdn.microsoft.com/en-us/library/system.windows.controls.frame.journalownership(v=vs.95).aspx

http://msdn.microsoft.com/en-us/library/system.windows.navigation.journalownership(v=vs.95).aspx

OwnsJournal是您的价值,因为它没有与浏览器日志集成,并且url保持原来的状态,因此用户无法为“子页面”添加书签。

您也可以实现您自己的日记机制。

另一个:),但是如果你跟踪第一个页面加载(例如在OnNavigatedTo页面事件中),并且在第一次请求时手动导航到主页面,那么会非常难看。或者在App.xaml.cs中,当应用程序启动时,您转发页面请求。

但我推荐第一个。

+0

太棒了!我使用了OwnsJournal,它完美的工作!谢谢一堆! :) – danbord

相关问题