INotifyPropertyChanged链接嵌套对象并更新总计

时间:2015-03-30 18:59:31

标签: c# .net inotifypropertychanged

假设我有以下类的结构:

class Building : INotifyPropertyChanged 
{
    public double TotalArea 
    {
        get { return _totalarea; }
    }
    private double _totalarea;
    public List<Floor> Floors { get; set; }
}

class Floor: INotifyPropertyChanged 
{
    public double TotalArea 
    {
        get { return _totalarea; }
    }
    private double _totalarea;
    public List<Room> Rooms{ get; set; }
}

class Room: INotifyPropertyChanged 
{
    public double Area 
    {
        get { return _area; }
        set 
        {
            _area = value;
            RaisePropertyChanged("Area");
        }
    }
    private double _area;
}

我希望通过类维护通知链,以便如果更改Room.Area,将新Room添加到Floor.Rooms或从Floor.Rooms中删除,则Floor.TotalArea将更新并立即更新Building.TotalArea。

除此之外,UI(WPF)绑定到这些属性,并且必须通知这些类的TotalArea和Area属性的更改。

我的应用程序已经发展成为一个大型应用程序,并且添加用于监视子类属性更改的事件处理程序开始变得混乱。我正在寻找一个干净而优雅的解决方案来链接属性通知并更新父类的总数,而不会过多地牺牲性能。

如何链接属性通知以更新此类嵌套对象中的总计?

0 个答案:

没有答案