2012-04-26 106 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方法在兩頁之間導航。 希望這可以幫助