wpfアプリケーションでは、ビューモデルの責任は何ですか?彼はすべてを管理したり、ビューを表現したり、メッセージ/イベントをビジネスレイヤーに送信したり、そこから情報を得ることはできますか?ビューモデルにロジックが含まれている必要がありますか?
6
A
答えて
8
短い答え、はい。
長い答えは...モデル - ビュー - ViewModelに(MVVM)パターンの
主な目的は以下のとおりです。あなたのビューロジックの
- 許可ユニットテスト。これらはViewModelレイヤーに適用されたユニットテストで、ビューが関連付けられていない状態で実行されます。
- XAMLファイルに関連付けられているコードビハインドの量を最小限に抑えることによって、開発者/デザイナーのワークフローを容易にします。
MVVMパターンは、MVCとそのUIパターンと同じ方法で、ビューロジックとビジネスロジック間の懸念を分離します。しかし、上記の2つの点はMVVMパターンを実際に定義するものです。
ここで、ビジネスロジックの場所を考えます。 ViewModelに配置した場合、#1 &#2は有効ですか?はい。別のレイヤーに配置すると、#1と#2は有効ですか?はい。
したがって、どちらの場合でも、MVVMの2つの主要な目標を達成しています。どのルートを実際に使用するかは、アプリケーションの複雑さとそれに取り組む開発者の数によって異なります。これらの要素が両方とも増加すると、3つのレイヤーを持つことができます。
関連する問題
- 1. リアックスRedux:減算器にロジックが含まれている必要があります
- 2. 文字列にコードが含まれている必要があります
- 3. Info.plistに 'CFBundleIcons.CFBundlePrimaryIcon'キーが含まれている必要があります
- 4. データバインディングにはレイアウトファイルが含まれている必要があります
- 5. WFCサービスプロジェクトにデータベースモデルが含まれている必要があります
- 6. エラーコード:1241オペランドに1列が含まれている必要があります。
- 7. MVVM、モデルまたはビューモデル(コントローラ)にロジックを配置する必要があります
- 8. ロジックがトリガアクションまたはエントリに入る必要がありますか?
- 9. ビューモデルまたはドメインモデルをセッションに保存する必要がありますか?
- 10. シーケンスには複数の要素が含まれていますが、複数の要素が含まれている必要があります
- 11. 編集用の部分ビューモデルには、MetadataTypeで指定されたすべてのフィールドが含まれている必要がありますか?
- 12. ロジックをチェックインする必要がありますユニットテストケースメソッド
- 13. Unixスクリプトでロジックを追加する必要があります。
- 14. パスワードシステムのロジックを改善する必要があります
- 15. main()はハンドラを含むすべてのスクリプトに含まれている必要がありますか?
- 16. Treelistデータソースのクエリ - フィールドは、「X」含まれている必要があります
- 17. 実行中にエラーが発生する、またはインテントフィルタが含まれている必要があります
- 18. 異なるビューでビューモデルを再利用する必要がありますか?
- 19. iPhone:どのコントローラがCRUDロジックを処理する必要がありますか?
- 20. HTML5にtype = "value"を含める必要がありますか?
- 21. PHP上にスーパークラスを含める必要がありますか?
- 22. ヘッダーファイルにソースコードを含める必要がありますか?
- 23. プロジェクトにvalidation-apiを含める必要がありますか?
- 24. バルクデータをグラフに含める必要がありますか?
- 25. 画像にaltを含める必要がありますか?
- 26. ActionbarSherlock 4.0 Deploy:何が含まれる必要がありますか?
- 27. エラーコード1241:オペランドには1列が含まれている必要があります。どうしましたか?
- 28. ASP.NET MVC 3 RESTful Routing:RouteDataにはActionという項目が含まれている必要がありますか?
- 29. Spark変換とアクションのロジックはスレッドセーフである必要がありますか?
- 30. iTunes Connect CFBundleShortVersionShortにはより高いバージョンが含まれている必要があります
はい - http://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – Josh