Если вы пользуетесь кнопками OK и ОТМЕНА всегда независимо от состояния, я не вижу особой ценности в их включении в шаблон проектирования MVVM.Я не делаю silverlight, но предполагая, что он похож на WPF, вы можете проверить свойство IsCancel на панели «Свойства» для кнопки «Отмена», и это автоматически закроет диалоговое окно и установит DialogResult = false при нажатии кнопки.Для вашей кнопки ОК добавьте что-то простое, как это
<Button ...Your normal settings here and then...
Click="DoneButtonClickHandler">
Затем в коде позади.
private void DoneButtonClickHandler(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
Я знаю, что некоторые пуристы ничего не хотят в коде позади, но для меня, более простой, более понятныйКод лучше (и смысл реализации MVVM).Теперь, если мои кнопки «ОК» и «Отмена» включены только при определенных условиях модели, я бы, вероятно, настроил их для взаимодействия с ModelView.