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