VM определённые вьюхи?
Окна-то надо как-то показывать из вьюмоделей. Напрямую к компонентам GUI фреймворка обращаться из VM — моветон, потому что VM вообще говоря должны быть переиспользуемы и тестируемы, на то они и VM https://reactiveui.net/docs/handbook/view-models/#the-zen-of-the-viewmodel поэтому часто пишут отдельный интерфейс для этого дела
Плюс если что-то куда-то замапить, то встаёт вопрос, кто будет заниматься созданием вьюх, если не отдельный сервис. Так-то можно и в конструкторе вьюхи вм инициализировать. С однооконным приложением кстати всё просто — берётся composition root (там App.OnStartUp) и внутри него делается new MainView { DataContext = container.Resolve<MainViewModel> } и поехали, во вложенные вьюхи DataContext сам прокинется, либо <SomeView DataContext={Binding SubDataContext}. А когда окон много, значит и таких корней композиции будет несколько — почему бы в таком случае занятие композицией не отдать на откуп какому-нибудь сервису. Но тут конечно каждый сам себе архитектор
Обсуждают сегодня