Прежде всего, я не уверен, что ваши идеи нарушают шаблон MVVM. На мой взгляд, не так важно заполнять шаблоны в каждом случае. Шаблон в моих глазах предлагает стратегии для решения проблем. В большинстве случаев не стоит следовать шаблону 100% во что бы то ни стало. Если есть прагматичное решение, вы должны использовать это. Конечно, это должны быть решения, которые приведут вас к вашим целям, например, модульное тестирование, разделение пользовательского интерфейса и прикладной логики и т. д.
В любом случае, когда я впервые читал вашу статью, я подумал, что реализация оператора приведения - это хорошая идея. Но если я не ошибаюсь, вам нужно сослаться на модель представления в вашей модели. Я всегда стараюсь избегать этого, чтобы максимизировать возможности повторного использования. Но я думаю, что наличие такой ссылки не нарушает закономерность. Может быть, кто-то еще может рассказать об этом подробнее.
Для меня ваша идея менеджера - лучший способ. Я использую аналогичный способ для создания моделей представления. Это зависит от того, сколько моделей представлений вам нужно создать, но вы должны скорее создавать новые модели представлений, чем повторно использовать существующие. Где-то я читал, что модели представления должны быть своего рода конечным автоматом для представления. Следуя этой идее, вы никогда не знаете, в каком состоянии находится модель представления, когда вы снова ее используете. Поэтому предпочтительным способом является создание новой модели представления.
Просто некоторые мысли! Может быть, есть и другие идеи ...