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