В моем приложении MVVM достаточно большое количество моделей ViewModel для родительских деталей. Примерно так:
SchoolsViewModel
+- SchoolViewModel
+- LessonViewModel
+- PupilsViewModel
+- PupilViewModel
+- TeacherViewModel
+- PupilsViewModel
+- PupilViewModel
+- LessonsViewModel
+- TeachersViewModel
И так далее ...
Кроме того, модель одного представления может появляться в нескольких местах в зависимости от того, просматривает ли пользователь урок или ученик и т. Д.
Каждая дочерняя модель представления создается родительской моделью представления, и поэтому во многих моделях представления должны быть переданы зависимости модели дочернего представления. Например, конструктор для SchoolsViewModel может быть:
SchoolsViewModel(ISchoolsRepository schoolsRepository,
ILessonsRepository lessonsRepository,
IPupilsRepository pupilsRepository,
ITeachersRepository teachersRepository,
...)
Теперь обычным способом сделать все это управляемым является использование инфраструктуры DI, такой как StructureMap, для передачи всех необходимых аргументов в модель представления. Однако, поскольку в этом случае мое приложение обычно создает только SchoolsViewModel, это ограниченное использование.
Мой первый вопрос, в этом случае, вы бы заставляли SchoolsViewModel передавать каждую зависимость каждой дочерней модели представления, или вы заставляли бы каждую модель представления использовать ObjectFactory.GetInstance () для создания моделей дочерних представлений? Возможно, через фабричный класс, чтобы абстрагировать зависимость от структуры DI?
Есть еще один вопрос, связанный с этим: MVVM: поиск других моделей представления
РЕДАКТИРОВАТЬ: я открыл щедрость на это, как я хотел бы больше мнений.