Есть WPF приложение с 2-мя окнами.
В главной VM создается модальное окно со своем VM и если результат true, то в главной VM выполняются некоторые действия.
Так вот, во второй VM есть вот такая штука:
<Button Grid.Row="9" Content="Сохранить настройки" Command="{Binding SaveSettings}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
Команда:
public RelayCommand SaveSettings
{
get
{
return _saveSettings ?? (new RelayCommand(obj =>
{
Window wnd = obj as Window;
wnd.DialogResult = true;
SaveUserConfig();
}, obj => !_settings.Equals(_oldSettings)));
}
}
Но это же, вроде, нарушает принципы MVVM? Можно через событие, но тогда будет не чистый MVVM.
Собственно, как более правильно присвоить DialogResult ?