【问题标题】:How do I subscribe to property changed events raised from child objects?如何订阅从子对象引发的属性更改事件?
【发布时间】:2012-09-06 13:27:29
【问题描述】:

我有一个 Invoice 对象,它公开了一个只读属性 - Total。这个总数只是发票项目总数的总和:

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

InvoiceItems 类中的 Total 属性如下所示:

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

类和属性由 LINQ 生成(除了我自己创建的两个类中的 Total 属性)。例如,当 InvoiceItem 的价格发生变化时,我希望该变化反映在其父 Invoice 的 Total 属性中。

【问题讨论】:

    标签: winforms linq entity-framework-4 propertychanged


    【解决方案1】:

    您将不得不手动执行此操作,即

    1. 迭代子InvoiceItems
    2. 为他们的PropertyChanged 事件添加一个处理程序
    3. 当他们的Price 属性发生变化时,更新您的Total 属性
    4. 可选地处理InvoiceItems上的CollectionChanged事件,以在添加/删除发票项目时添加/删除PropertyChanged订阅。

    【讨论】:

      猜你喜欢
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多