Лично я не думаю, что это нарушает DRY, поскольку модель и модель представления (я предпочитаю термин презентатор) не указывают на одну и ту же информацию. Например, у вашей VM и M есть свойство Title, но свойство Title вашей VM может также включать проверку, в то время как свойство Title вашей модели может принимать допустимость.
Несмотря на то, что виртуальная машина может содержать все свойства модели, существует также возможность проверки (например, заголовок должен быть непустым), зависимости от данных, привязываемые свойства, связанные с пользовательским интерфейсом (значки, цвета). , кисти и т. д.), которые не являются частью вида.
По сути, все шаблоны пользовательского интерфейса имеют похожее «дублирование» в том виде, в каком вы его заявляете: а именно каскадные модификации. Попробуйте изменить модель в MVC, не меняя контроллер.
При этом MVVM (или любой шаблон пользовательского интерфейса, разработанный для разделения пользовательского интерфейса, логики и состояния) может быть слишком утомительным для простых случаев, таких как ваш пример. Когда логика становится немного больше, чем проход через состояние, значение, разделяющее контроллер / презентатор / модель представления, уменьшается.
В вашем конкретном случае, если на самом деле нет какой-либо логики, валидации или специфических свойств пользовательского интерфейса, из-за которых ваша виртуальная машина не всплывает, и ваша модель не должна быть сохранена, сериализована или обратно совместима с существующей структуры (или добавление логики для этого в вашей ВМ тривиально), я бы настоятельно рекомендовал объединить М и ВМ, чтобы избежать создания свойств, единственной целью которых является получение / установка свойств базовой модели.