Bonjour à tous,
Après avoir vainement cherché, je m'en remets à l'expertise de certains d'entre vous pour m'aider dans la mise en oeuvre d'une interface entièrement Databindée avec une validation niveau formulaire.
Avant d'exposer le problème : Tous mes contrôles + 1 Datagridview sont bindés sur un Bindingsource unique ayant comme source une DataTable....
L'idée de départ est de détecter et traiter toutes les modifications de données dans l’évènement ColumnChanged du DataTable ainsi je peux traiter les toutes les modifications quels soit issues de la source ou des contrôles et c'est aussi l’évènement qui fonctionne le mieux a priori quand il s'agit d'annuler les modifications avec CancelEdit.
- 1er problème avec un CheckBox : Je clique pour changer son etat à True : l’évènement ColumnChanged du DataTable (transmis par l’intermédiaire du moteur de Binding) ne se déclenche que lorsque je pers le focus du dit contrôle, ce n'est pas instantané. De plus lorsque que j'annule avec Cancel Edit, la donnée correspondante en DataTable a bien été annulé mais le CheckBox conserve sont état à True. C'est pas Top.
Soit. Pour régler ce problème je rajoute au binding de mon CheckBox : MonBinding.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged
Cette fois l’évènement se déclenche instantanément comme prévu mais après CancelEdit il conserve toujours son état à True
A mon avis ,soit je ne fait pas mon CancelEdit au bon endroit, soit il existe une fonction pour rafraichir l'ensemble des contrôles par l'intermediaire du moteur de Binding.
Si vous avez une idée ça me serait d'un grand secours. je galère déja depuis plusieurs semaine sur cette unique problème......
Comptant sur vos aides précieuses.
Christian
Partager