4

私の葉ノード(​​割り当て)には、プレゼンテーションレイヤーのビューモデル構造の上部で使用したいDurationChangedイベントがあるコンポジット構造があります。 TimeSheetViewModel)、私はそれに到達する最良の方法は何か不思議です。気になるドメインイベントvイベントアグリゲータv ...その他

のオプションがあります。

  1. はTimeSheetCompositeでそれを購読します。各コンポジットは最終的にAllocationsで構成され、TimeSheetCompositeはTimeSheetViewModelへのモデルです。また、私はTimeSheetCompositeのイベントが必要ですが、これは子DurationChangedイベントが発生したときに起動されます。 TimeSheetViewModelは後者のイベントにサブスクライブします。
  2. DurationChangedイベントを無視し、AllocationViewModel.Amountが変更されたときにTimeSheetViewModelにバブルアップするINPCチェーンに従います。私は有用な情報、特に編集前の古い金額は持っていませんが、必要に応じて必要な最終結果を安く計算することができます。
  3. DurationChangedイベントをDomain Eventにします。私は現在ドメインイベントを使用していませんが、コンセプトが好きで、Udiの記事には十分なコードがあるようです。
  4. イベントアグリゲータを設定して、&を公開すると、DurationChangedに登録されます。私はドメイン・イベントとイベント・アグリゲーターの違いはまだ分かりませんし、同じことを解決するための無料の代替方法であろうと別の方法であろうと、それはまだわかりません。 implementation here using Rx looks promising

この設計では、TimeSheetViewModelはAllocation.Durationがいつ変更されたかを知る必要があるため、すべての割り当て期間の新しい合計を日付で取得できます。

どのようにDurationChanged通知を提供しますか?

私はトンで葉のイベントを受け取る巻き上げ

乾杯、
Berryl

ドメインコンポジット構造&イベント

enter image description here

プレゼンテーション層構造

enter image description here

答えて

0

彼(TimeSheet)コンポジットを作成してから、(TimeSheet)ViewModelがそれを聞くのを簡単にするために、同様のイベントを本質的に再スローします。

私がDomainEvents/EventAggregatorsをよく理解したら、私はこれをもう一度見直します。

乾杯、
Berryl