域事件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
域复合结构&事件
表示层结构
没有找到相关结果
已邀请:
1 个回复
犀耽澄协吻