域事件v事件聚合器v…其他

我的域中有一个复合结构,其中叶节点(Allocation)有一个DurationChanged事件,我想在我的表示层视图模型结构的顶部使用(在TimeSheetViewModel中),我想知道最好的方法是什么得到它。 想到的选项包括: 在TimeSheetComposite中订阅它。每个复合最终由Allocations组成,TimeSheetComposite是TimeSheetViewModel的Model。看来我还需要TimeSheetComposite中的一个事件,当一个子DurationChanged事件被触发时会被触发; TimeSheetViewModel将订阅后一个事件。 忽略DurationChanged事件,只需按照更改AllocationViewModel.Amount时冒泡到TimeSheetViewModel的INPC链。我没有一个有用的信息,特别是在编辑之前的旧金额,但我可以在必要时足够便宜地计算所需的最终结果。 使DurationChanged事件成为域事件;我目前不使用域事件,但我确定喜欢这个概念,看起来Udi的文章中有足够的代码来开始使用它。 设置某种Event Aggregator以发布&订阅DurationChanged。我不太确定域事件和事件聚合器之间的区别是什么,以及它们是否是解决相同问题的补充或替代方法。这里使用Rx的实现很有希望。 在此设计中,TimeSheetViewModel需要知道Allocation.Duration何时更改,以便按日期获得所有分配持续时间的新总计。 您如何提供DurationChanged通知? 干杯, Berryl 域复合结构&事件 表示层结构     
已邀请:
我结束了(TimeSheet)Composite中的叶子事件,然后在那里重新抛出类似的事件,使(TimeSheet)ViewModel能够轻松地收听它。 当我更好地理解DomainEvents / EventAggregators时,我将重新审视这个。 干杯, Berryl     

要回复问题请先登录注册