gpt4 book ai didi

Silverlight 3 Beta,ViewModel 中的 NavigationService

转载 作者:行者123 更新时间:2023-12-01 11:09:59 25 4
gpt4 key购买 nike

我正在开发一个 silverlight 3 beta 导航应用程序,所以我使用了 MVVM 模式的细微变化:)(一体式 View 模型),使用 Prism 等。

问题:如何导航到 View 模型中的不同“NavigationPage”

长话短说, View 模型被声明为页面资源。

<navigation:Page.Resources>
<mvvm:LoginModel x:Key="DataSource" d:IsDataSource="True"></mvvm:LoginModel>
</navigation:Page.Resources>

然后使用命令将所有内容与 View 模型连接起来

<Button x:Name="LoginButton" Width="100"  Margin="8" Content="Login"
prism:Click.Command="{Binding LoginCommand}"/>

现在,如果我尝试像这样在 View 模型中导航到任何地方

this.NavigationService.Navigate(new Uri("/Views/About.xaml", UriKind.Relative));

Navigationservice 为空,我环顾四周,发现 this文章,它描述了使用 helix 0.3 进行导航,这是在 sl2 时代构建的,当时导航控件从未存在,现在 helix 的模型运行良好,并且通过在 View 模型中实现 INavigationAware,您可以访问 NavigationContext,然后做任何你需要的事情,我已经尝试过 helix,它有效。

SL3 带有内置的导航支持,可以说,它的功能与 helix 的功能完全相同。所以我不想使用第 3 方框架,相反我更喜欢使用内置的 sl3 功能。

SL3 中是否有任何东西可以模拟 helix 的 INavigationAware 接口(interface)?

最佳答案

我个人认为 NavigationService 是与 UI Frame 或 Page 相关联的 UI 概念。

无需将 NavigationService 传入 View 模型即可完成此操作的另一种方法是让 ViewModel 在应该发生导航时引发事件...让 View 处理 View 模型事件并调用 Navigate 作为响应。

关于Silverlight 3 Beta,ViewModel 中的 NavigationService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com