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