2012-08-30 6 views
1

Мне нужна помощь по шаблону MVVM.ViewModel, общий доступ к нескольким точкам.

Я создал ViewModel, что разоблачить данные и команды, которые будут отображаться в виде списка в представлении имени А.

Этот ViewModel также используется в представлении имени В. С этой точки зрения, я просто нужно раскрыть некоторые свойства и никаких команд, но мне пришлось создать еще 2 свойства.

Лучше ли создать более конкретный ViewModel для представления B, даже если это касается одного и того же объекта?

ответ

0

Сложно ответить. Но я могу рассказать вам, что мы делаем для нашего приложения. У нас есть одна модель, которая более или менее независима от просмотра, она просто работает как обертка для наших бизнес-данных и содержит все материалы, которые используются практически во всех частях, где показана эта модель. Теперь для части обзора у нас есть очень конкретные модели просмотра. Как и ProjectTreeViewModel или SearchResultViewmodel, с соответствующими модулями View для каждого из них. Модели представления элемента не нужно снова реализовывать всю логику, просто нужно настроить общую модель представления модели. Чтобы лучше аналогию:

Если у вас есть модель File, Drive и Folder. Вы должны создать FileViewModel, DriveViewModel и FolderViewModel. Но только один ExplorerItemViewModel. Это нужно только для предоставления свойства для отображения базовой модели представления. Остальное зависит от ваших шаблонов данных.

+0

Я работаю более или менее таким же образом. Представленная ViewModel инкапсулирует бизнес-объект. Спасибо за ваши ответы – Xxbz

7

Я бы предложил композицию, имеющую две модели просмотра, у которых есть свойство, содержащее модель представления, которая содержит общие свойства. Эти две модели представления должны иметь только свои особые свойства и команды.

Смежные вопросы