Что такое хороший шаблон для обмена данными между связанными представлениями?
У меня есть приложение, в котором 1 форма содержит много маленьких представлений, каждое представление более или менее ведет себя независимо друг от друга (они взаимодействуют / взаимодействуют через шину событий). Время от времени мне нужно передавать одни и те же объекты дочерним представлениям. Иногда мне нужно, чтобы этот же объект был передан дочернему представлению, а затем ребенок передает его другому собственному дочернему объекту.
Каков хороший способ обмена этими данными между всеми представлениями, содержащимися в родительской форме (представлении)?
Я рассмотрел CAB и их подход, и у каждого "представления" есть "корневой рабочий элемент", у этого рабочего элемента есть словарь, который содержит общее "состояние" между содержащимися представлениями.
Это лучший подход? просто общий словарь все представления под корневым представлением могут получить доступ?
Мой текущий подход сейчас состоит в том, чтобы иметь функцию в представлении, которая позволяет установить объект для этого представления. Что-то вроде
view.SetCustomer(Customer c);
тогда, если представление содержит дочернее представление, оно знает, как установить его в дочернее представление ala:
this.childview1.SetCustomer(c);
Приложение написано на C # 3.5 для winforms, использующих MVP со структурной картой в качестве поставщика IoC / DI.