Реализация команды «закрыть окно» с помощью MVVM

Итак, в моей первой попытке все было сделано из исходного кода, и теперь я пытаюсь реорганизовать свой код, чтобы использовать шаблон MVVM, следуя указаниям MVVM в информации о блоке .

Я создал класс модели представления, соответствующий моему классу представления, и я перемещаю код из исходного кода в модель представления, начиная с команд.

Моя первая загвоздка — попытка реализовать кнопку «Закрыть», которая закрывает окно, если данные не были изменены. Я настроил CloseCommand для замены метода onClick, и все в порядке, за исключением того места, где код пытается запуститься this.Close(). Очевидно, поскольку код был перенесен из окна в обычный класс, «это» не является окном и, следовательно, не может быть закрыто. Однако, согласно MVVM, модель представления не знает о представлении, поэтому я не могу вызвать view.Close().

Может ли кто-нибудь предложить, как я могу закрыть окно из команды viewmodel?

40
задан wonea 16 June 2017 в 10:59
поделиться