Возможно, вы захотите попробовать Catel . Он позволяет вам определять класс DataWindow (вместо Window), и этот класс автоматически создает модель представления для вас. Таким образом, вы можете использовать объявление ViewModel, как вы делали в исходном сообщении, и модель представления все равно будет создана и установлена как DataContext.
См. эту статью для примера.