Модель представления не должна создавать экземпляры окон. Что вы могли бы сделать, так это внедрить вашу модель представления в службу, отвечающую за создание окон, например:
public class MainWindowViewModel
{
private readonly IWindowService _windowService;
public MainWindowViewModel(IWindowService windowService)
{
_windowService = windowService;
CreateWindowCommand = new DelegateCommand(() =>
{
_windowService.CreateWindow(new SomeViewModel());
});
}
public ICommand CreateWindowCommand { get; }
}
Определить интерфейс IWindowService
в проекте модели представления и конкретную реализацию этого в просмотр / презентация проекта:
public class WindowService : IWindowService
{
public void CreateWindow(SomeViewModel vm)
{
Window win = new Window();
win.DataContext = vm;
win.Show();
}
}