私は数百のプロパティを持つ作業ビューモデルを持っていて、それぞれが1つ以上のクライアントビューによって積極的に消費されています。これは技術的にトラフィックディレクターとしての目的を果たしますが、私の心配はレガシーメンテナンスが悪夢になることです。私はこれを複数の余分なクラスに分割し、VM内のそれぞれについてシングルトンを実行しようとしましたが、フロントエンドの開発者は、どのインスタンスオブジェクトが特定のターゲットプロパティにつながるかについて頭を掻きません。私は部分的なクラスファイルにVMを分割しようとしました。これはコマンドの実装には特に有効ですが、プロパティではこれは現実的ではありません(VM単体では数百、または数千ものコードファイルがあります)。この方向に進むと、F12キーにも依存してしまいます)。 MVVM(またはMVC)を使用して誰かがこの問題に遭遇しましたか?私はリバティーザーの助けなしにこれらのプロパティ定義を管理する方法が必要です!MVVM:非常に大きなビューモデルの扱い
0
A
答えて
3
通常、ビューごとに1つのViewModelクラスがあります。ビューは、Window、UserControl、またはPageになります。 1つのViewModelをアプリケーション全体のDataContextとして使用することは可能ですが、その考えは私を驚かせます。 それぞれのビューで独自のViewModelインスタンスを解決できます。
あなたのアプリケーション私は、各ビューは、基礎となるモデルを更新AND/OR基礎となるモデルへの変更を監視し、独自のViewModelを持っているだろうと思っているだろう
0
のソースコードおよびアーキテクチャを見ずに助言することは困難です。モデルがドメインオブジェクトである。ドメインオブジェクトは、すべての四肢(DB、サービスなど)を抽象化するアーキテクチャの中核をなすものです。モデルの一部のプロパティが値を変更した場合、モデルが変更を通知すると(たとえば、永続性が成功した後など)、変更を監視しているすべてのViewModelが変更の更新を行います。
関連する問題
- 1. 非常に大きなnetCDFファイルをPythonで扱う
- 2. PDFBox:非常に大きなPDFを扱う。
- 3. MVVMのDataTemplateと非空のビューモデルのコンストラクタ
- 4. のJava - 非常に大きな数(600851475143)
- 5. Pythonの非常に大きなブールリスト
- 6. vb.netで非常に、非常に大きな数字
- 7. C#RSClientPrint非常に大きなスプール
- 8. jQueryモバイルフレームワークと非常に大きなデータリスト
- 9. 非常に大きなJarファイルとFAT32
- 10. 非常に大きなレンダリングUIscrollview UIImage + Video
- 11. 非常に大きなビットマップを描く
- 12. 非常に大きなPythonスクリプト
- 13. 非常に大きなスクロールGtkDrawingArea
- 14. optomise非常に大きなテーブルクエリ
- 15. ハンドルが非常に大きいhttpダウンロード
- 16. MyBatisで非常に大量のデータを扱う
- 17. NSTableViewに非常に大きなCoreDataストアを扱うにはどうすればいいですか?
- 18. 非常に高いメモリ使用量 - iPadで大きな画像を扱うには?
- 19. メッセージサイズが大きいとsocketchannel.write()が非常に遅くなる
- 20. のLucene:IndexSearcher.searchは()私は非常に大規模なデータベースを持っている非常に大規模なデータベース
- 21. MVVMビューモデルと非同期データの初期化
- 22. Crystal Reports - 非常に大規模なデータベース、非常に長い処理時間
- 23. Pythonでの大きなテキストファイルの扱い
- 24. VB.NET大きな整数の扱い
- 25. 非常に大きなリストのPythonでのフィルタリング/反復
- 26. 非常に大きな単一ページのアプリケーション設計の問題
- 27. 非常に短い時間に非常に大きな(〜TByte)ファイルを連結します
- 28. 非常に大きなディレクトリの情報を取得する
- 29. ocaml非常に大きなデータ構造の提案
- 30. 非常に大きな鳥の抽出点
一般に、MVVMでは、ビューごとに1つのビューモデルがあります。 1つのビューモデルで複数のビューをサポートしているようです。あなたのビューモデルが非常に多くのプロパティを持っている理由かもしれませんか、何か不足していますか? – devuxer
私はビューを管理するためにマシン状態を使用しています。このUIは、特に、約20のビューを持ち、すべて同じデータソースから読み込みます。彼らはすべて同じVMを共有すべきであることは当然のようでした。おそらく私は間違っている。 – Jace
あなたの質問はおそらく[codereview.stackexchange.com](http://codereview.stackexchange.com/) –