事件冒泡模式适用于分层模型吗?

时间:2010-10-04 19:42:44

标签: wpf flex model-view-controller mvvm

让我们考虑以下示例,我有“Document”对象,其中包含“Person”对象的集合,每个“Person”对象都有“Address”对象的集合。当其中一个“地址”对象发生更改时,我需要调用服务器端方法来计算人员(其“地址”已更改)的所有地址与更新用户界面之间的最佳路径。我需要知道其中一个地址已被更改,而地址已更改。 到目前为止,我唯一的解决方案是实现某种事件冒泡。当“地址”对象发生更改时,它会通知父(“人”对象)有关更改,“人员”通知“文档”。现在我们可以向“Document”类添加监听器并进行必要的操作。这种方法的缺点 - 我必须管理层次结构中所有对象的“父”链接。有人可以评论这个解决方案吗?好吗?或者也许我在这里做错了什么?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用“父”字段管理自己的层次结构,也可以让父对象侦听其子对象并重新分派事件。这可能主要通过一些共享的帮助程序代码来管理。

答案 1 :(得分:0)

你走在正确的轨道上。

创建事件时,只需将bubbles属性设置为true。

http://www.igorcosta.com/flex3/doc/flash/events/Event.html#bubbles

您必须在ActionScript中的文档类中添加事件侦听器[除非您在Document类上定义事件元数据],但它应该工作并且没有问题。

如果您没有令人信服的理由“抓住/重新发送”,我就不会费心去重新制作轮子了。