私は数百のプロパティを持つ作業ビューモデルを持っていて、それぞれが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. openpyxl pythonで非常に大きなファイルを扱う
- 2. 非常に大きなnetCDFファイルをPythonで扱う
- 3. PDFBox:非常に大きなPDFを扱う。
- 4. Pythonで非常に大きな値を扱う/表示する
- 5. 非常に大きなビデオファイルをHTMLで扱う5
- 6. MVVMのDataTemplateと非空のビューモデルのコンストラクタ
- 7. 非常に大きなタイムスタンプ
- 8. vb.netで非常に、非常に大きな数字
- 9. Pythonの非常に大きなブールリスト
- 10. のJava - 非常に大きな数(600851475143)
- 11. 非常に大きなレンダリングUIscrollview UIImage + Video
- 12. jQueryモバイルフレームワークと非常に大きなデータリスト
- 13. optomise非常に大きなテーブルクエリ
- 14. アングルダイジェストループと非常に大きなモデル
- 15. C#RSClientPrint非常に大きなスプール
- 16. 非常に大きなJarファイルとFAT32
- 17. ダイナミックプログラミング非常に大きなデータ値
- 18. 非常に大きなスクロールGtkDrawingArea
- 19. 非常に大きなPythonスクリプト
- 20. 非常に大きなビットマップを描く
- 21. laravel app.js非常に大きなファイルサイズ
- 22. MyBatisで非常に大量のデータを扱う
- 23. Android mapbox libs非常に大きい
- 24. TFS tbl_TestResultテーブルが非常に大きい
- 25. ハンドルが非常に大きいhttpダウンロード
- 26. WPF MVVM - 祖先ビューモデル
- 27. NSTableViewに非常に大きなCoreDataストアを扱うにはどうすればいいですか?
- 28. 多数の行を扱うとき、TMemoが非常に遅い
- 29. 角2の大きなプロジェクトが非常に遅い
- 30. なぜカフカノードのデータディレクトリサイズが非常に大きいですか
一般に、MVVMでは、ビューごとに1つのビューモデルがあります。 1つのビューモデルで複数のビューをサポートしているようです。あなたのビューモデルが非常に多くのプロパティを持っている理由かもしれませんか、何か不足していますか? – devuxer
私はビューを管理するためにマシン状態を使用しています。このUIは、特に、約20のビューを持ち、すべて同じデータソースから読み込みます。彼らはすべて同じVMを共有すべきであることは当然のようでした。おそらく私は間違っている。 – Jace
あなたの質問はおそらく[codereview.stackexchange.com](http://codereview.stackexchange.com/) –