我正在使用2个型号编写MVVM C#WPF软件。我正在使用Caliburn.Micro FYI。
父模型:
namespace Expense_Manager.Models
{
public class Receipt: PropertyChangedBase
{
public Receipt()
{
Items = new List<Item>();
}
public List<Item> Items{ get; set; }
private double _total;
public double Total
{
get { return _total; }
set
{
_total= value;
NotifyOfPropertyChange(() => Total);
}
}
}
}
第二种模式:
namespace Expense_Manager.Models
{
public class Item: PropertyChangedBase
{
public Item()
{ }
private double _amount;
public double Amount
{
get { return _amount; }
set
{
_amount= value;
NotifyOfPropertyChange(() => Amount
}
}
}
}
为了发布这个问题,我简化了模型。
所以我的问题是:如何让父模型中的总金额通过以下方式计算:
答案 0 :(得分:1)
使用ObservableCollection而不是List&lt;&gt;这是因为:
这就是你在案件中使用它的方式:
public Receipt()
{
Items = new ObservableCollection<Item>();
Items.CollectionChanged += Items_CollectionChanged;
}
private void Items_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
Total = Items.Sum(x => x.Amount);
}
public ObservableCollection<Item> Items { get; set; }