2012-09-06 50 views
1

我有一個發票對象,公開一個只讀屬性 - Total。這個總數是總的發票項目的簡單相加:如何訂閱從子對象引發的屬性更改事件?

public decimal Total { get { return this.InvoiceItems.Sum(s => s.Total); } } 

在InvoiceItems類總資產看起來是這樣的:通過LINQ產生

public decimal Total { get { return Price * Quantity - Discount; } } 

的類和屬性(除我自己創建的兩個類的總屬性)。例如,當價格在InvoiceItem上發生變化時,我希望該變更反映在其母公司InvoiceTotal財產中。

回答

0

你將不得不手動執行此操作,即

  1. 遍歷孩子InvoiceItems
  2. 添加處理自己PropertyChanged事件
  3. 當他們的Price屬性更改,更新Total財產
  4. 可選句柄CollectionChanged事件InvoiceItems添加/刪除PropertyChanged訂閱爲發票項目被添加/刪除。
+1

謝謝科林。一小段代碼讓我開始? :) –