2010-09-28 20 views
1

Dans WPF, je souhaite afficher la somme, les valeurs moyennes basées sur la liste d'éléments fournie. Par exemple, j'ai un objet Employé avec propriété de salaire, et je veux calculer le salaire total basé sur la liste des employés. En outre, l'objet employé est lié à un contrôle Items où le salaire sera modifié/un nouvel employé peut être ajouté à la liste.Calculer la somme, moyenne basée sur la liste d'éléments dans WPF

Quelqu'un peut-il me fournir une solution pour y parvenir?

+0

Comment est-ce que cela concerne WPF? Essayez-vous de le faire en XAML? –

+0

Oui, j'essaye de le faire en XAML. – Elangovan

Répondre

1

je ferais ceci:

Dans votre code derrière ou ViewModel (si vous utilisez MVVM) créer une nouvelle propriété de dépendance appelée AverageSalary.

Modifiez ensuite le salaire de l'employé pour qu'il devienne également une propriété de dépendance. Dans le code derrière vous pouvez alors écouter lorsque le Employee.Salary change. (voir this link for details on that) Et quand il change, recalculez la moyenne comme indiqué ci-dessus, puis affectez-le à la propriété de dépendance AverageSalary que vous avez créée.

Ensuite, il suffit de lier votre interface utilisateur à la propriété AverageSalary et il doit être mis à jour lorsque les salaires de l'employé changent.

+0

C'est une façon de le faire, mais je wat pour éviter les écouteurs d'événements en XAML, au lieu de cela j'essaie d'atteindre ce XAML, en utilisant les propriétés jointes, ou IMultivalueConverter. – Elangovan

1

LINQ, vous pouvez tout simplement faire quelque chose le long des lignes de

var averageSalary = yourEmployeeList.Average(employee => employee.Salary); 

est de même pour la somme.

+0

Je veux le faire dans la reliure et il devrait écouter les changements dans le salaire ainsi que les articles dans la liste. – Elangovan

+0

Cela ne se met pas à jour lorsque les données source (Employee.Salary) sont modifiées. –