Задать вопрос
@slav4ik51493

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

Здравствуйте. Мне нужно вызвать вьюшку из вьюмодели другого модуля. Т.е., у меня имеется модуль ProcurementManager, в нем вьюмодель, из который должно вызываться вьюшка, которая находится в другом модуле, модуле Ticket. Как можно реализовать это, чтобы не нарушать паттерн?
  • Вопрос задан
  • 333 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Donil
По-хорошему Вам следует создать DialogService, у которого будет метод Show(BaseViewModelType viewModel) и инжектить этот сервис в нужные места. Здесь Вам поможет IoC (DI-контейнер, если конкретнее).

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

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

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

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