2012-04-25 3 views
0

У меня проблемы с попыткой понять этот шаблон. На работе мы реализуем MVP с пассивными видами. Мы используем WinForms.Общение между представлениями

  • Таким образом, у нас есть вид (который является формой окна), который реализует интерфейс и имеет презентатор.
  • Ведущий получает экземпляр интерфейса, который вид реализует и управляет просмотром интерфейса.
  • Ведущий может видеть модель и менеджера.
  • Менеджер управляет устойчивостью базы данных нескольких моделей, но он не добавляет их вручную, он использует отдельный слой под названием Data, поэтому он сообщает, что уровень для сохранения данных
  • Уровень данных затем сохраняет данные на базы данных, используя Entity Framework

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

У нас также есть вид на города, который является простым добавлением, редактированием и удалением, а также представляет собой модель Сити и стол Сити.

Теперь, на наш взгляд, мы хотим, чтобы пользователь добавил новый город, поэтому в представлении мы открываем другой вид, вид Города, тогда пользователь создает новый город.

С точки зрения клиентов, я хочу посмотреть, какой город добавлен пользователем, как это возможно? Вернет ли что-нибудь?

(я хочу иметь его в памяти, ничего не сохраняется в базу данных при добавлении города, я просто хочу, чтобы модель города)

Я думаю, что возвращение модели и просмотра моделей с точки зрения не MVP. Как я могу это сделать?

+0

Я полагаю, что ваш ViewModel запускает соответствующие события для обновления пользовательского интерфейса при изменении данных? – Tejs

+0

Что вы подразумеваете под ViewModel? – gosukiwi

+0

Похоже, что ваш интерфейс - ViewModel. Когда вы устанавливаете что-то на свой интерфейс, обновляется пользовательский интерфейс, да? – Tejs

ответ

0

Один вид, открывающий другое, вполне разумен, но я лично не одобряю представление, возвращающее значение, которое будет использоваться вызывающим. Что, если другие взгляды должны иметь доступ к этому новому городу?

См. Мой ответ здесь: MVP Communication between presenters? для примера использования pub/sub для достижения вашей цели.

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