Несколько докладчиков MVP: как общаться и делиться информацией? - PullRequest
3 голосов
/ 11 марта 2011

Я разрабатываю приложение Winforms MDI в соответствии с шаблоном MVP, и я застрял на некоторых проблемах, связанных с обменом данными между различными частями моего приложения.

Вот простая картина этого приложения: 1 -Наслева вид дерева 2- Посередине компонент для рисования 3 - справа, форма "свойство".Этими 3 частями управляют с помощью триады MVP (ну, на самом деле, модель не является общей для всех триад)

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

Мой основной вопрос: а) Где хранить информацию «Выбранный объект»?б) Как предупредить рисование компонента и свойства формы, что «Выбранный объект» изменился?

Я начал придумывать некоторые решения, но я очень недоволен.

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

Так что я представляю, я бы сохранил эту информацию в презентере. Если я добавлю «Выбранный объект» в презентере Treeview, мне кажется, что и Presenter для компонента рисования, иФорма Presenter for Property будет содержать ссылку на Presenter в виде дерева, чтобы получить эту информацию.

Это создает некоторую связь между докладчиками, и мне это тоже не нравится.

Поэтому я ищу другие идеи или комментарии.спасибо за ваше время.

1 Ответ

0 голосов
/ 14 апреля 2011

Прежде всего, извините за поздний ответ :) было много вещей, чтобы закончить: D

Я не знаю, как именно ваш код построен, но, возможно, вы могли бы использовать Retlang .Тогда вы могли бы легко передать список идентификаторов в сообщении и обработать это сообщение где угодно.

Также мне было бы весьма интересно услышать, как вам удалось решить вашу проблему год назад.

...