Я боролся с этим и нашел ответ, написанный @ mm8, очень полезным, а также несколько других постов. Я не был в восторге от идеи создания класса (или метода внутри класса) для каждого представления, поэтому я создал свой собственный вариант. Это один из моих первых проектов с WPF, когда я пытался использовать MVVM, поэтому я поделюсь этим, если это будет полезно, а также чтобы получить отзывы от более опытных людей.

опрос связан с тем, что создано тысяча и одна тема, и если я пропущу ответ на свой вопрос, извините, но, насколько я посмотрел, никто не мог ответить на мой вопрос. Например:Открытие нового окна в MVVM WPF

Ответы хороши, если вы используете только один проект WPF (включая модели, vms и представления), но так как я учусь правильно реализовывать MVVM (и я неоднократно читал, что лучше всего создавать отдельный класс lib). (dll) для модели, viewmodel и отдельного проекта графического интерфейса), который, кажется, не работает в моих глазах, потому что, если я хочу создать интерфейс, такой как IWindowService (описанный в предыдущем URL, а такжеВот, Невозможно получить доступ к классу Window или Control, потому что тогда у меня должна быть ссылка на проект GUI, и вся цель шаблона разрушена.

Поэтому мой вопрос заключается в том, как показать новое окно (с новой моделью представления), например, из MainViewModel, соблюдая при этом слабосвязанные принципы MVVM И отдельные проекты.

Более подробно пример того, чего я пытаюсь достичь:

У меня есть следующая структура:

МОДЕЛЬ (проект dll)
Профиль

ViewModel (проект dll)
MainViewModel
AddProfileViewModel

ВИД (WPF) (exe проект)
MainWindow
AddProfileWindow

Я открываю MainWindow и хочу нажать кнопку AddProfile, затем AddProfileWindow должен появиться с прикрепленной к нему AddProfileViewModel.

Ответы на вопрос(1)

Ваш ответ на вопрос