Я разрабатываю MDI-приложение Winforms по шаблону MVP, и я застрял на некоторых проблемах, связанных с обменом данными между различными частями моего приложения.
Вот простая картинка этого приложения: 1 -Слева древовидное изображение 2- В середине компонент чертежа 3- Справа форма «свойства». Эти три части управляются триадой MVP (ну, на самом деле, модель общая для всех триад)
Когда я щелкаю узел в древовидной структуре, я хочу увидеть рисунок соответствующего выбранного объекта в компоненте рисования, и я хочу увидеть некоторые свойства, соответствующие этому выбранному объекту, в форме свойств.
Мой основной вопрос: а) Где хранить информацию «Выбранный объект»? б) Как предупредить компонент Чертежа и форму свойств, что «Выбранный объект» изменился?
Я начал придумывать какие-то решения, но очень недоволен.
Я не покупаю вставку «Выбранный объект» в Модель и синхронизацию наблюдателя. «Выбранный объект» не принадлежит Модели
Итак, я полагаю, я бы сохранил эту информацию в презентаторе. Если я помещу «Выбранный объект» в презентатор Treeview, мне кажется, что и Presenter для компонента рисования, и Presenter для формы свойств должны будут содержать ссылку на презентатор treeview, чтобы получить эта информация.
Это создает некоторую связь между докладчиками, что мне тоже не нравится.
Так что я ищу другие идеи или комментарии. Спасибо за ваше время.