在 WPF 中,我想根据提供的项目列表显示总和平均值。
例如,我有一个具有 Salary 属性的 Employee 对象,我想根据员工列表计算总工资。此外,员工对象是绑定到 Items 控件的数据,将在其中编辑薪水/新员工可能会添加到列表中。
谁能为我提供一个解决方案来实现这一目标?
在 WPF 中,我想根据提供的项目列表显示总和平均值。
例如,我有一个具有 Salary 属性的 Employee 对象,我想根据员工列表计算总工资。此外,员工对象是绑定到 Items 控件的数据,将在其中编辑薪水/新员工可能会添加到列表中。
谁能为我提供一个解决方案来实现这一目标?
使用 LINQ,您可以简单地按照以下方式做一些事情
var averageSalary = yourEmployeeList.Average(employee => employee.Salary);
Sum 也是如此。
我会这样做:
在您的代码或 ViewModel(如果您使用 MVVM)中创建一个名为 AverageSalary 的新依赖项属性。
然后将员工的 Salary 更改为依赖属性。在后面的代码中,您可以听到 Employee.Salary 何时更改。(有关详细信息,请参阅此链接)当它发生变化时,重新计算上面列出的平均值,然后将其分配给您创建的 AverageSalary 依赖项属性。
然后只需将您的 UI 绑定到 AverageSalary 属性,它应该会随着员工工资的变化而更新。