Это спорная тема в MVC / MVVM. Некоторые говорят, что это нормально для View, чтобы получить прямой доступ к Моделям, другие говорят, что вы должны обернуть Модели в ViewModels, чтобы абстрагировать их от View. Я лично не поклонник любого подхода.
Одной из основных целей MVC / MVVM является разделение пользовательского интерфейса, бизнес-логики и данных. Таким образом, учитывая эту концепцию, предоставление представлению прямого доступа к моделям создает зависимость, которую вы, возможно, не захотите иметь. С другой стороны, упаковка моделей в ViewModels часто является утомительной и не очень полезной, поскольку ViewModels, как правило, действуют просто как переход к моделям.
Мне нравится подход, при котором ваши модели реализуют определенный интерфейс, давайте назовем его IModel. Ваш класс ViewModel может затем предлагать экземпляры объектов, которые реализуют IModel для потребления View. View просто знает, что работает с объектами IModel, полученными из ViewModel. Это удаляет посторонний код оболочки ViewModel, а также скрывает конкретную реализацию IModel от View. Позже вы можете поменять одну реализацию IModel на другую, не влияя на просмотр одного бита.