将NavigationService传递给Usercontrol windows phone 7

本文关键字:windows phone Usercontrol NavigationService | 更新日期: 2023-09-27 17:57:47

我想将导航服务传递给我的用户控件。在我的应用程序端

<myControl:Test  NavigationService="{Binding NavigationService}"/>/>

在我的Usercontrol CS侧

 public NavigationService NavigationService { get; set; }

但它似乎不起作用,应用程序一加载就会崩溃。

将NavigationService传递给Usercontrol windows phone 7

这真的很苛刻。。。好吧,你还没有提到这一点,但我想,你试图解决从UserControl导航到其他页面/uc的问题(这是真的吗?)。

几个编辑:

  1. 首先,您不需要类的对象来使用NavigationSevice
  2. 其次,NavigationService最常用于页面

如果您真的do想将其与UserControl一起使用,则应该将页面的实例转移到控件。但是,根据我的经验,这通常是不需要的。我宁愿建议这样做:

在你的UserControl中,你肯定会拥有带有点击/点击事件的控件。无需在用户控制类中描述它们的逻辑。当您将用户控件添加到页面时,应该在那里声明它。类似:

someUserControl.buttonNavigate.MouseLeftButtonUp += new MouseButtonEventHandler(buttonNavigate_Click);

然后你就可以使用导航服务了。

NavigationService.Navigate(new Uri(...));

这是最简单的解决方案。希望能有所帮助。

还有另外一个,但我希望这个能解决问题。