在Windows Phone中屏幕之间是否有类型安全的导航方式?

Dav*_*Dev 8 c# navigation windows-phone windows-phone-8

我正在寻找一种在我的应用程序中的屏幕之间导航的方法.基本上我到目前为止看到的是将字符串URI传递给NavigationService,完成查询字符串参数

NavigationService.Navigate(new Uri("/MainPage.xaml?selectedItem=" +bookName.Id, UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)

我并不是真的热衷于此,但最终因为它需要魔法弦,而且它们可能会导致问题.

理想情况下,我只是创建一个我想要导航到的类的实例,将参数作为参数传递给构造函数.这可能吗?如果是这样,怎么样?

Aus*_*son 7

虽然实际导航最终必须使用字符串,但您可以创建或使用类型安全的包装器.

即使您只使用它进行类型安全导航,我也建议您查看Caliburn Micro.以下是WP8中使用它的教程的片段:

工具包附带的NavigationService支持视图模型的第一种方法:我们声明哪个是我们想要显示的ViewModel,而不是声明哪个是我们想要用户的页面的URL(这是标准方法).该服务将负责创建正确的URL并显示与视图模型关联的视图.

或者你可以看看Windows Phone MVC,它也有一些类型安全的导航.您甚至可以将导航代码拉出来自行使用,因为它是在MS-PL下获得许可的.