На мой взгляд, главная цель MVVM - устранить код, который не может быть легко протестирован модульными тестами . Так как модель представления может быть проверена модулем, но представление не может, это достигается, делая вид максимально тупым. В идеале, как это можно сделать с XAML, представление является полностью декларативным и привязывается только к данным в модели представления. Отсюда мантра «нет кода позади».
Повторное использование модели представления в различных технологиях пользовательского интерфейса на самом деле не является целью MVVM. Если вы попробуете это, у вас, вероятно, будет соблазн переместить код, специфичный для технологии пользовательского интерфейса, в представление снова, чтобы сохранить модель представления повторно Это пошло бы вразрез с основной целью тестируемости.
Если вы действительно нуждаетесь в поддержке различных технологий пользовательского интерфейса, вы все равно можете выделить общую логику моделей представлений в общий уровень представления. Я не буду этого делать, пока не буду уверен, что это необходимо.