Voici mon soucis. Pour les besoins de mon application, je désire afficher un datagridview contenant une liste d'opération bancaires ainsi qu'un formulaire permettant d'ajouter/modifier/supprimer un enregistrement.
Mon datagridview est associé à un bindingdatasource, et mes controles de mon formulaire d'édition aussi. Ce qui me permet donc une association permanente entre l'élément sélectionné de mon datagridview et les données affichées dans lmon formulaire.
Ma BindingSource est en faite une liste d'objet personalisé donc voici un apercu:
Mon datagridview contient 3 colonnes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class Operation { private double _montant; private string _label; public double Montant { get { return _montant; } } public string Label { get { return _label; } } }
1) Colonne libellé = colonne bound de la propriété Label de l'objet Operation
2) Colonne Débit = colonne unbound. Affiche la propriété Montant de Operation si ce montant est négatif
3) Colonne Crédit = colonne unbound de la propriété Montant. Affiche le montant si celui-ci est positif.
J'utilise les eventsde mon datagridview pour mes colonnes unbound.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DataValueNeeded
Le Problème est le suivant (enfin !!)
Quand je sélectionne une ligne de mon datagridview, les données de l'Operation correspondante sont bien affichées dans les contrôle de mon formulaire d'édition.
Si je modifie le libellé puis que je clique sur mon bouton enregistrer, les informations affichées dans mon datagridview se mettent bien à jour correctement.
Mais si je modifie le champ montant et que je clique sur enregistrer, le montant de la colonne correspondante dans mon datagridview (soit colonne débit soit colonne crédit) ne se met pas à jour. Elle ne se met à jour que si je change la ligne sélectionnée dans mon datagridview.
Apparement la MAJ des colonnes unbound ne se fait pas toute seule. Pour le moment, la seule solution que j'ai trouvée c'est d'appeler la méthodede mon bindingsource pour que TOUT le datagridview se mette à jour. Mais c con de mettre à jour toutes les lignes quand une seule est modifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ResetBing()
Quelqu'un aurait-il la solution SVP ?
Merci d'avance.
Partager