我有一个演示者名为ParentPresenter和两个presentwidgets, childpresententer1和childpresententer2。
ParentPresenter同时包含了childpresententer1和childpresententer2。ChildPresenter1有超过1000个随机复选框,用户可以选择/取消选择其中的任何一个。
当用户点击"Save"(它位于ChildPresenter2中)后,ChildPresenter2应该从ChildPresenter1中获得选择/取消选择复选框值的列表。我很困惑ChildPresenter2将如何接收ChildPresenter1数据,
- 创建一个事件,该事件将由ChildPresenter1在每个复选框上触发选择/取消选择,ChildPresenter2注册该事件并保持数据更新。但是在ChildPresenter1上看到1000+选择/取消选择是一个好的解决方案吗?
- 当ChildPresenter2"Save"被按下时,它触发一个事件,ChildPresenter1监听它,准备所有数据并从ChildPresenter1中触发一个带有数据的事件,该事件将由ChildPresenter2处理以获取数据。这听起来很傻,不是吗?
请建议我该如何处理这件事?
我建议如下:
选择状态/数据和处理逻辑应该放在ParentPresenter中。
ParentPresenter {
List<String> selectedIds
}
在ChildPresenter1中,每当选择状态发生变化时,触发事件来通知选择的变化(带有已选择或未选择的id)。ParentPresenter将监听这个事件,并相应地更新它的selectedIds。
在childpresententer2中,每当"保存"按钮被按下时,触发一个SaveEvent,它也被ParentPresenter侦听。一旦ParentPresenter接收到这个事件,它就可以处理所有必要的信息(selectedIds)。