MVVMアプリケーションには親子のViewModelがかなりたくさんあります。このような何か:MVVMとStructureMapの使用
SchoolsViewModel
+- SchoolViewModel
+- LessonViewModel
+- PupilsViewModel
+- PupilViewModel
+- TeacherViewModel
+- PupilsViewModel
+- PupilViewModel
+- LessonsViewModel
+- TeachersViewModel
のように...また
は、単一のビューモデルは、ユーザが授業や生徒などで閲覧しているかどうかに応じて、複数の場所に現れることができます
各子ビューモデルは、親ビューモデルによって作成され、ビューモデルのように多くは、渡された子ビューモデルの依存関係を持っている必要があります例えばSchoolsViewModelのコンストラクタは次のようになりますされています。
SchoolsViewModel(ISchoolsRepository schoolsRepository,
ILessonsRepository lessonsRepository,
IPupilsRepository pupilsRepository,
ITeachersRepository teachersRepository,
...)
これをすべて管理しやすいようにする通常の方法は、StructureMapなどのDIフレームワークを使用して、必要なすべての引数をビューモデルに渡すことです。しかし、この場合、私のアプリケーションは通常、SchoolsViewModelを作成しているだけなので、これは限られた使い方です。
この場合、SchoolsViewModelを各子ビューモデルに渡すか、各ビューモデルでObjectFactory.GetInstance()を使用して子ビューモデルを作成しますか?おそらくDIフレームワークへの依存を抽象化するための工場クラスを通して? MVVM: locating other ViewModels
EDIT:
は、これに関連する別の質問があり、私はより多くの意見を好きな私は、この上の恵みを開きました。
しかし、これはあまりにも複雑です... 1つのEducationFactoryを持つすべての工場を組み合わせる方がよいです。 – alex2k8