2012-04-26 54 views
2

有谁知道在WP7应用程序中实例化视图的位置?WP7视图在哪里实例化?

它们是否由Silverlight导航框架实例化? SL Nav框架是否负责实例化视图以及导航?

或者是在其他地方实例化的视图,而导航框架只是获得视图实例的引用?如果是这样,我是否有可能控制视图实例并从DI容器实例化它们?

回答

2

要直接回答你的问题,我没有办法知道重写视图对象的创建。

但是,在XAML编程中,使用ViewModel(控制器和模型的组合以及对属性添加更改跟踪)被认为是最佳实践。在ViewModel堆通常是这样工作的(打算从视图背面):

  • 视图XAML包括根元素上一个DataContext:DataContext="{Binding PageNameViewModel, Source={Static ViewModelLocator}}"
  • ViewModelLocator加到Application.ResourcesApp.xaml,并设置有DI容器通过App.xaml.cs启动期间
  • ViewModelLocator每页的视图模型,其中的每一个通过DI容器

实例化VM有关详细信息定义了一个属性,搜索“MVVM的Windo WS电话”,或查看以下项目:

  • MVVM Lite(可以说是最常用的MVVM框架WP,这则进一步包括消息框架,以促进更加松散耦合通信)
  • WP7 Guide(微软模式&做法示例应用,但通常认为是过于复杂)
1

在Windows Phone中导航的默认方式是使用NavigationService。要导航到新页面,请使用Navigate(Uri source)方法。与其他平台不同,此方法仅将Uri作为参数。只有平台才会覆盖此方法的对象以导航到。这是Windows Phone的限制。 Uri必须是新的PhoneApplicationPage的位置。 NavigationService然后创建这个对象并导航到它,将当前页面放到它的后台。从那里您可以使用GoBack和GoForward方法在两页之间导航。 希望这可以帮助

相关问题