J'ai créé une Classe IPropertyChanged nommée MaClasse. Elle contient les champs suivants:Id, NbrHour, TimeRate, TotalPrice, Weight, TotalPriceByWieght.
Cette classe est liée à un BindingSource ainsi qu'a des TextBox. Lorsque je modifie par exemple NbrHour, je veux calculer le
TotalPrice = (NbrHour * TimeRate) et TotalPriceByWieght = (TotalPrice / Weight)
Pour cela, j'utilise l'évènement ListChanged du BindingSource pour être averti que j'ai effectué une modification. Et donc dans cette méthode, j'appel le calcul de mes deux champs. Et la je constate que le rafraichissement de mes contrôles TextBox est décalé. C'est à dire qu'il affiche la valeur du précédent calcul.
Maintenant, si je met ma logique de calcul dans la propriété NbrHour de ma classe puis que je déclenche les INotifyPropertyChanged, mes contrôles se mettent correctement à jour. Mais je pense que ce n'est pas la solution. Car je voudrai pouvoir travailler avec des classes Model contenant que la structure de ma base de données et une autre classe BLL contenant tout la logique pour la classe Model.
Je vous ai mis un mini projet en annexe pour que vous puissiez tester.
Merci
Partager