Несколько презентаторов MVP: как общаться и делиться информацией?

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

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

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

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

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

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

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

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

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


person flamandier    schedule 10.03.2011    source источник


Ответы (1)


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

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

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

person Volodymyr Usarskyy    schedule 14.04.2011