Это заметка. Для закрытия формы по правилам MVVM, требуется проделать следующие. Создать класс: DelegateCommand наследующий ICommand, рисунок 1. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace FiasView.MVVM.DelegateCommand { public class DelegateCommand : ICommand { private Action<object> _execute; private Func<object, bool> _canExecute; public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } public DelegateCommand(Action<object> _execute, Func<object, bool> _canExecute = null) { this._execute = _execute; this._canExecute = _canExecute; } public bool CanExecute(object parameter) { return this._canExecute == null || this._canExecute(para