Итак, у меня есть редактируемая ViewModel, где я не хочу, чтобы ее можно было редактировать только через диалоговое окно.
Обычно представление ViewModels показывает только данные, но вы можете нажать кнопку «Редактировать», которая открывает новуюОкно Xaml, вызывая window.showDialog ().Окно принимает ViewModel как DataContext, предоставляет свои свойства как редактируемые и привязывает команды Save и Cancel к кнопкам.
Все работает нормально, но у меня есть некоторые проблемы с этим.
Сначала команда сохранения работает, но она не закрывает диалоговое окно.Во-вторых, это как бы разрывает MVVM, потому что виртуальная машина должна знать представление EditDialog, чтобы создать его.
Также, что происходит, когда я нажимаю кнопку закрытия X.Я знаю, что Dialog обычно возвращает false как DialogResult, но здесь я не обрабатываю результаты.
Кто-нибудь делал что-то подобное, но элегантно, используя MVVM?
EDIT
Я также заметил, что если я использую .ShowDialog, я не могу ничего редактировать, даже если я выставляю как TextBoxes.Это из-за того, как модальные диалоги должны работать?