我正在开发一个 silverlight 3 beta 导航应用程序,所以我对 MVVM 模式进行了一些细微的改动:)(多合一视图模型),使用棱镜和其他东西。
问题:如何在视图模型中导航到不同的“NavigationPage”
现在长话短说,视图模型被声明为页面资源。
<navigation:Page.Resources>
<mvvm:LoginModel x:Key="DataSource" d:IsDataSource="True"></mvvm:LoginModel>
</navigation:Page.Resources>
然后使用命令将所有内容与视图模型连接起来
<Button x:Name="LoginButton" Width="100" Margin="8" Content="Login"
prism:Click.Command="{Binding LoginCommand}"/>
现在,如果我尝试像这样在视图模型中的任何位置导航
this.NavigationService.Navigate(new Uri("/Views/About.xaml", UriKind.Relative));
Navigationservice 是空的,我环顾四周发现了这篇文章,它描述了使用 helix 0.3 进行导航,这是在 sl2 天构建的,当时导航控件不存在,现在 helix 的模型运行良好,并通过在中实现 INavigationAware视图模型,您可以访问 NavigationContext,然后执行您需要的任何操作,我尝试过 helix,它可以工作。
SL3 带有内置的导航支持,可以这么说,这正是 helix 所做的。所以我不想使用 3rd 方框架,而是更喜欢使用内置的 sl3 功能。
SL3 中是否有任何东西可以模拟 helix 的 INavigationAware 接口?