Windows 8 アプリケーションを作成しています (ただし、Xaml を使用している人なら誰でも助けてくれると思います)。基本的には、製品のリストが表示されたページで、製品をクリックすると詳細ページが開きます。
私の構成ルートでは、最初のページのビュー モデルを解決し、データ コンテキストを適切に設定しますが、ユーザーが製品を選択したときにビュー モデルをページ 2 に渡すためのベスト プラクティスが何であるかはわかりません。
私が知る限り、次のオプションがあります:-
- 最初のビューモデルには、.create(product) メソッドを使用してページ 2 のビュー モデルを作成できる抽象ファクトリが必要です。これは、最初のビュー モデル コンストラクターに渡されます。
- 2 番目のビュー モデルに製品プロパティを持つインターフェイスを実装して、プロパティ インジェクションを使用できるようにし、2 番目のビュー モデルをパラメーターとして最初のビューモデルに渡します。
- 多くの人がアンチパターンと見なしていることを知っているサービスロケーターを作成します。
私は少し途方に暮れていますが、抽象ファクトリが正しい方法であると思います。オブジェクト グラフが実際にはこれ (製品 -> ステップ -> 命令) であるため、これを正しく取得したいと考えています。作業にはかなりの時間がかかる可能性がありますが、基本的には、ビュー モデルが抽象ファクトリ ルートをたどると、3 つの抽象ファクトリと、製品の初期リストを取得するサービスが必要になることを意味します (そして、これは与えられたコードの匂いですか?いくつのパラメータがあります!)。