MVVM дизайн вопрос - PullRequest
       4

MVVM дизайн вопрос

2 голосов
/ 12 января 2011

Я пытаюсь создать приложение silverlight, используя шаблон проектирования MVVM. Это своего рода банковское приложение.

Я смотрел много уроков по MVVM, но что-то меня смущает.

У меня есть пять пользовательских элементов управления, представляющих мои представления «TransactionsView», «AccountView» и т. Д., И несколько моделей «UserProfile» - содержащих пароль пользователя, имя пользователя и список UserAccounts, «UserAccounts» - содержащие имя, баланс и список AccountTransactions, "AccountTransactions" - содержит имя и сумму.

Должен ли я создать один модельный вид, который содержит мой userprofile, или я должен создать модельный вид для каждого имеющегося у меня вида? Я делаю все правильно? Или я правильно понял?

Спасибо

Ответы [ 5 ]

2 голосов
/ 12 января 2011

В MVVM ViewModels обычно имеют один к одному с представлениями. Тем не менее, между ViewModel и Models нет паритета.

  • Вид: UI
  • ViewModel: обрабатывает изменения в состоянии просмотра, перенаправляя их в модель, если / когда это необходимо. Отправляет уведомления из базовой программы обратно пользователю. Он также может выполнять начальную проверку пользовательского интерфейса.
  • Модель: Актуальные «кишки» приложения. Алгоритмы, хранилище данных, системные вызовы и т. Д. Здесь. Я положил поток программы здесь. Я видел, как другие люди помещали это во ViewModel. Эта часть зависит от вас, чтобы выяснить.

Представлению всегда нужен ViewModel, следовательно, 1-к-1 (он может иметь подмодели, но я оставлю это на ваше усмотрение, чтобы решить / разобраться с этим. Я бы начал с 1-к- 1).

ViewModel обычно нуждается в моделях, чтобы действительно «работать», но сколько классов / экземпляров зависит от каждого приложения / проблемы, которую вы пытаетесь решить.

0 голосов
/ 12 января 2011

Представьте, что вы хотите видеть на экране, и каждое состояние, в котором может находиться экран / элементы управления на экране, все, что необходимо на этом конкретном экране (представлении), должно иметь соответствующее свойство в вашей ViewModel, которое вы можете связать Вид на. Таким образом, это переводит в одну ViewModel для конкретного View. Сама ViewModel может быть привязана к одной или нескольким моделям сзади. По крайней мере, так я это понимаю.

0 голосов
/ 12 января 2011

Для MVVM рекомендуется одна ViewModel на просмотр.

0 голосов
/ 12 января 2011

Нет действительно жестких и быстрых правил, но, по сути, обычно есть одна ViewModel для View.Вы можете столкнуться с ситуацией, когда вы хотите поделиться моделью представления между несколькими представлениями, но это редко.

0 голосов
/ 12 января 2011

Из того, что вы объясняете, вы идете в правильном направлении. Какая модель представления вы создаете, зависит от вас, MVVM не стоит на месте - это всего лишь метод. Во время проб и ошибок я обнаружил, что было разумно хорошо понять это, прежде чем копать себя слишком глубоко.

Я прочитал много статей, которые не объясняли MVVM так, как я мог понять. Наконец, я нашел пару статей Джереми Моррила, которые были прямо к сути и просты для понимания: Статья 1 и статья 2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...