@slav4ik51493

Как создать новое окно из ViewModel в рамках паттерна MVVM?

Здравствуйте. Мне нужно вызвать вьюшку из вьюмодели другого модуля. Т.е., у меня имеется модуль ProcurementManager, в нем вьюмодель, из который должно вызываться вьюшка, которая находится в другом модуле, модуле Ticket. Как можно реализовать это, чтобы не нарушать паттерн?
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Donil
По-хорошему Вам следует создать DialogService, у которого будет метод Show(BaseViewModelType viewModel) и инжектить этот сервис в нужные места. Здесь Вам поможет IoC (DI-контейнер, если конкретнее).

Есть, конечно и другие способы. События, например. У Вашей ViewModel должно быть событие (Action), на которое подпишется главное окно, например, и будет на него соответственно реагировать.

Представления для конкретной ViewModel в обоих случаях можно описывать как DataTemplate и биндить отображаемую ViewModel к ContentPresenter, который сам найдет подходящий Template по типу ViewModel
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы