Мне нужно закрыть модальное окно из ViewModel на основе команды щелчка, которая запускается в элементе управления, который представлен в окне.WPF & MVVM - Закрыть окно изнутри Child control
Итак, у меня есть MainViewModel, JimViewModel, JimWindow и JimControl. MainViewModel создает JimWindow и устанавливает его DataContext в JimViewModel. JimWindow содержит JimControl, который содержит кнопку. Когда эта кнопка нажата, я хотел бы вызвать команду, которая каким-то образом закрывает JimWindow.
Я видел несколько вопросов, которые отвечают на это относительно закрытия окна из фактического окна (передавая экземпляр окна в команду на ViewModel), но он не переводит на то, что я хочу делать.
Я не использую рамки, поэтому у меня нет удобного посланника, чтобы помочь мне. Может ли кто-нибудь помочь? Это случай как-то ссылаться на Имя родительского окна из элемента управления?
Поскольку закрытие окна строго просмотр связанных, я бы сказал, перекрывая событие для вызова команды (при необходимости) и закрыть окно лучше, чем модель представления, обеспечивающая эту функциональность в команде. – chris
Где бы этот звонок был закрыт, правда? Кнопка, которая закрывает окно, находится в элементе управления, который находится внутри окна. Должно ли окно передать ссылку на элемент управления? – jimbo
Функция будет переопределена в контексте окна уже. То есть переопределяющим классом будет окно, и поэтому можно просто вызвать 'Close()'. Это добавляет код в место, где код должен быть дефицитным, но я не думаю, что это код, который принадлежит VM. У меня недостаточно опыта, чтобы узнать все другие доступные варианты. – chris