此问题建立在之前提出的问题之上:MVP Communication between presenters?
我正在实施上一篇文章中概述的模式。但是,在尝试根据Presenter A中的某些事件从Presenter B检索状态时,我遇到了一个问题。
例如,Presenter A响应视图事件SaveButtonClicked。
演示者A需要从Presenter B的视图中获取某些状态,即视图B.
到目前为止,我所尝试的是:
class PresenterA
{
void PresenterA()
{
EventHub.Register(EventType.SendStateToPresenterA, HandleSendStateToPresenterA);
}
void HandleSaveClick(int productId)
{
EventHub.Publish(EventType.GetStateFromPresenterB, productId);
}
void HandleSendStateToPresenterA(string state)
{
// save to db
}
}
class PresenterB
{
void PresenterB
{
EventHub.Register(EventType.GetStateFromPresenterB, HandleGetStateFromPresenterB);
}
public void HandleProductChanged(int state)
{
EventHub.Publish(EventType.SendStateToPresenterA, "I am state!");
}
}
这种方法的问题在于,如果我有两个以上的演示者,那就太复杂了。
有哪些方法可以解决这个问题?
答案 0 :(得分:0)
我发现情况并不能为演示者B提供单独的视图/演示者。它属于View A / Presenter A.