私はMVVMパターンを、次の午前、私のビューアセンブリとのviewmodels Solution.UserInterface でSolution.BusinessLogicアセンブリで持っています。私の知る限りでは、のviewmodelsはがのviewmodelsへの参照を保持する必要がありビューとビューについて何も知らないはずです。しかし、私が私のカスタムを開こうとするとどうすればいいですかからからViewModelソリューション。ビジネスロジック? (たとえば、新しい項目の挿入ウィンドウ)。ビューへの参照を追加して循環依存を引き起こすことになるため、できません。この問題を解決するには?viewmodelからカスタムウィンドウを表示するにはどうすれば両方とも別々のアセンブリにありますか?
答えて
私はあなたがここでいくつかのものを混ぜていると思います。 MVVMには、Model、View、ViewModelという3つの部分があります。ビューはデータを表し、ViewModelにバインドされています。これらは通常、のSolution.UserInterfaceのような同じユーザーインターフェイスアセンブリ内に存在します。ビューファーストのアプローチでは、ViewModelはのに関連付けられたビューについて何も知らない - これは正しい。しかし、それは簡単にと一緒に働くことができます。他のViewModelにバインドされた新しいウィンドウを表示するのが好きです。
モデルは、ビジネスロジックが存在する場所です。これは他のアセンブリでも可能です。 ViewModelはビジネスオブジェクトへの参照を保持し、関連するViewに読み込み可能な形式で表示させるために別の形式に変換します。
も明確化のため、この質問を参照してください:[MVVM WPFで新しいウィンドウを開く]の Should I implement business logic on a Model or a ViewModel
View User InterfaceおよびViewModel/Modelはビジネスロジックではありませんか。なぜユーザーインターフェース層にビジネスロジックが存在するのですか? – OpenMinded
いいえ、MVVMでは、ビューのDataContextとしてViewModelが使用され、コントロールをプロパティにバインドできます。これはUIレイヤーで行われます。 ViewModelは、ビジネスロジックレイヤーにあるモデルからデータを取得します。 MVVMの詳細についてはhttps://msdn.microsoft.com/en-us/library/hh848246.aspxをご覧ください。 – Raziel
@OpenMindedもしこれがあなたにとって有益だったら、それを受け入れられた答えとしてマークしたらうれしいでしょう。 – Raziel
- 1. Wpf - MVVMとサービスは別々のアセンブリやフォルダにあります
- 2. 1つのViewModelからMVVWの別のViewModelにイベントを伝播する方法はありますか?
- 3. あるアクティビティから別のアクティビティにテキストを表示するにはどうすればよいですか?
- 4. はtitleとともにonMarkerClickListenerを設定しますが、どちらか一方が表示されます。両方を表示するには?
- 5. 別のViewModelからViewModelにアクセスする
- 6. リストビューでイベント名とリソース名の両方を表示するにはどうすればよいですか?
- 7. マーカーとポリラインの両方でGoogleマップを表示するにはどうすればよいですか?
- 8. ナビゲーションバー - 各ボタンは別々の行にありますが、どうすれば修正できますか?
- 9. wx.ListCtrlの両方のスクロールバーをwxPythonで非表示にするにはどうすればよいですか?
- 10. URLから画像を表示する別の方法はありますか?
- 11. "display:table"と "display:table-row"にもかかわらず、OLに数字を表示する方法はありますか?
- 12. 両方のアクティビティでナビゲーションバーを非表示にするにはどうすればいいですか?
- 13. Googleマップに両方のマーカーを表示するにはどうすればよいですか?
- 14. 両方のデータを編集テキストに表示するにはどうすればいいですか?
- 15. オブジェクト項目を別々の文字列としてmdDialogに表示するにはどうすればよいですか?私が持っているもの
- 16. iOSアプリのどこからでも画面を表示するにはどうすればよいですか?
- 17. 個々の画像ごとにテキストボックスを表示するにはどうすればよいですか?
- 18. DataGrid - 両方のスクロールバーを常に表示させるにはどうすればいいですか?
- 19. Amazon Reports APIは、子ASINと親ASINの両方を提供します。別々に両方を特定できる分野はありますか?
- 20. 別のコントローラからビュー内にビューを表示するにはどうすればいいですか?
- 21. Xcode APIとドキュメントは別々のウィンドウにありますか?
- 22. 別のものが表示されているときにdivを非表示にするにはどうすればいいですか?
- 23. マスターデータサービスで個々のエンティティをあるサーバーから別のサーバーに移動する方法はありますか?
- 24. 親ContentPage ViewModelから子ContentView ViewModelにINavigationServiceを渡すにはどうすればいいですか?
- 25. 別週を表示するにはどうすればよいですか?
- 26. ログレベルごとに2つの別々のlogback.xmlファイルからログバックを設定する方法はありますか?
- 27. 私の自作モーダルスクリプトを修正するにはどうすればいいですか?それとも何か別の方法がありますか?
- 28. もう片方をcssと並べて表示するにはどうすればいいですか
- 29. 複数のフィールドセットがあり、1つのフォームに別々のアクションボタンがありますが、コードビハインドは両方とも実行されています
- 30. フォームデータを別のページとデータベースの両方に渡すにはどうすればよいですか?
可能な複製(http://stackoverflow.com/questions/25845689/opening-new-window-in- mvvm-wpf) – ASh