2

ビューがWP7アプリでインスタンス化されている場所を知っている人はいますか?

それらは Silverlight ナビゲーション フレームワークによってインスタンス化されますか? SL Nav フレームワークは、ナビゲーションだけでなくビューのインスタンス化も担当していますか?

または、ビューが別の場所でインスタンス化され、nav フレームワークがビュー インスタンスの参照を取得するだけですか? もしそうなら、ビューのインスタンス化を制御して、DI コンテナーからそれらをインスタンス化することは可能ですか?

4

2 に答える 2

2

あなたの質問に直接答えるために、ビューオブジェクトの作成をオーバーライドする方法はありません。

ただし、XAML プログラミングでは、ViewModel (コントローラーとモデルを組み合わせたもので、プロパティに変更追跡が追加されたもの) を使用することがベスト プラクティスと見なされます。ViewModel スタックは通常、次のように機能します (ビューから戻る)。

  • View XAML には、ルート要素に DataContext が含まれています。DataContext="{Binding PageNameViewModel, Source={Static ViewModelLocator}}"
  • ViewModelLocator は に追加さApplication.ResourcesApp.xaml、起動時に App.xaml.cs によって DI コンテナーで提供されます。
  • ViewModelLocator は、ページのビュー モデルごとに 1 つのプロパティを定義し、それぞれが DI コンテナーを介して VM をインスタンス化します。

詳細については、「MVVM Windows Phone」を検索するか、次のプロジェクトを確認してください。

  • MVVM Lite (ほぼ間違いなく最も一般的に使用されている WP の MVVM フレームワークであり、より疎結合の通信を促進するメッセージ フレームワークをさらに含んでいます)
  • WP7 ガイド(Microsoft Patterns & Practices サンプル アプリケーションですが、一般的に複雑すぎると考えられています)
于 2012-04-27T05:18:49.897 に答える
1

Windows Phone 内を移動する既定の方法は、NavigationService. 新しいページに移動するには、Navigate(Uri source)メソッドを使用します。他のプラットフォームとは異なり、このメソッドはパラメーターとして Uri のみを受け取ります。移動先のオブジェクトを受け取るこのメソッドのオーバーライドを持っているのは、プラットフォームだけです。これは Windows Phone の制限です。Uri は、新しい の場所である必要がありますPhoneApplicationPage。その後、NavigationService はこのオブジェクトを作成してそこに移動し、現在のページをそのバックスタックに配置します。そこから、GoBack メソッドと GoForward メソッドを使用して、2 つのページ間を移動できます。お役に立てれば

于 2012-04-26T18:14:36.613 に答える