Такие вещи (диалоги подтверждения, диалоги открытия файлов и т. Д.) Обычно используются приложениями. Поэтому я предпочитаю не помещать их в ViewModel вообще.
ViewModel зависит от приложения, и не стоит расширять ViewModelBase до бесконечности. Вместо этого создайте повторно используемые поведения, чтобы расширить представление. В Expression Blend Gallery
есть несколько примеров поведения.
EDIT:
Поведения могут иметь свойства, и вы можете использовать эти свойства не только для указания характеристик поведения, но и для получения обратной связи:
<Button Content="Open Document">
<i:Interaction.Behaviors>
<local:FileOpenBehavior
FileNameTarget="{Binding ElementName=tbDocName}"/>
</i:Interaction.Behaviors>
</Button>
В приведенном выше примере tbDocName может быть скрыто - или вы можете привязать свойство вашего ModelView.