有谁知道在 WP7 应用程序中实例化视图的位置?
它们是否由 Silverlight 导航框架实例化?SL Nav 框架是否负责实例化视图和导航?
或者视图是否在其他地方实例化并且导航框架只是获取视图实例的引用?如果是这样,我是否可以控制视图实例化并从 DI 容器实例化它们?
有谁知道在 WP7 应用程序中实例化视图的位置?
它们是否由 Silverlight 导航框架实例化?SL Nav 框架是否负责实例化视图和导航?
或者视图是否在其他地方实例化并且导航框架只是获取视图实例的引用?如果是这样,我是否可以控制视图实例化并从 DI 容器实例化它们?
要直接回答您的问题,我知道无法覆盖视图对象的创建。
然而,在 XAML 编程中,最好的做法是使用 ViewModel(控制器和模型的组合,并在属性上添加了更改跟踪)。ViewModel 堆栈通常像这样工作(从视图返回):
DataContext="{Binding PageNameViewModel, Source={Static ViewModelLocator}}"
Application.Resources
in 中App.xaml
,并在启动期间由 App.xaml.cs 提供一个 DI 容器有关更多信息,请搜索“MVVM Windows Phone”或查看以下项目:
在 Windows Phone 中导航的默认方式是使用NavigationService
. 要导航到新页面,请使用该Navigate(Uri source)
方法。与其他平台不同,此方法仅将 Uri 作为参数。只有平台具有此方法的覆盖,该方法采用要导航到的对象。这是 Windows Phone 的限制。Uri 必须是 new 的位置PhoneApplicationPage
。NavigationService 然后创建这个对象并导航到它,将当前页面放在它的 backstack 上。从那里您可以使用 GoBack 和 GoForward 方法在两个页面之间导航。希望这可以帮助