Я использую различные подходы в зависимости от ситуации.Я обнаружил, что когда дело доходит до связывания этих данных, один размер подходит не всем.
В простых случаях у меня ViewModel и Model будут одинаковыми.Очевидно, что это не так хорошо для всех случаев, но иногда нет необходимости делать лишнюю милю, чтобы отделить М от ВМ.(Отлично подходит для случаев, когда у вас есть, скажем, элементы списка, которые имеют скудную информацию)
Иногда, особенно когда модель представляет собой кусок кода, к которому у вас нет доступа (написанного другим разработчиком), это легкочтобы создать подкласс для модели и добавить к ней все ваши виртуальные вещи (наблюдаемые свойства и т. д.).
Наконец, я буду использовать подход, упомянутый Souvik.Создайте виртуальную машину с информацией о модели, которую вы хотите использовать в качестве параметра, или разрешите ее передачу в противном случае.Это, вероятно, самый распространенный подход для моих более крупных и сложных отношений Model / ViewModel.