У меня есть вложенный набор представлений следующим образом:
Каждое представление имеет Presenter, где:
MainViewPresenter
ничего не знает о представлениях или докладчиках представленийViewA
илиViewB
ViewA
иViewB
индивидуально управляются соответствующими ведущими и, в свою очередь, управляютсяSplitViewPresenter
У меня есть события, которые произойдут в ViewA
, на которые подпишется ViewAPresenter
. SplitViewPresenter
может подписаться на события дочернего докладчика, а затем передать их до MainViewPresenter
. Но это похоже на ужасную трату усилий, чтобы просто поднять щелчок кнопки из ViewA
.
Кажется, что должен быть способ связать прослушиватель событий с MainViewPresenter
на ViewA.OnButtonClick
.
В этом случае, когда MainViewPresenter
не знает заранее, что отображают другие докладчики, шаблон Наблюдатель/Наблюдаемый не кажется подходящим. Или, может быть, есть реализация с использованием Reactive, которая будет работать (примечание: .Net 4.0, однако)
Подойдет ли делегат? Я знаю, что для каждой подписки на события на ViewA
может потребоваться другой делегат, и это нормально. В этом конкретном случае нажатие кнопки будет иметь действия, которые необходимо выполнить:
- обновить базу данных новой информацией
- добавить новую модель, созданную
ViewA
, в древовидное представление вMainView