Détection de fichiers sales à l’aide de la liaison de données Winforms

J’utilise une liaison à 2 voies avec des zones de texte winforms. Je dois déterminer si l’utilisateur a modifié mes données. Voir l’aide de

l’événement CurrentItemChanged

Il semble que cet événement se déclenche si une propriété a changé, mais il se déclenche également si le courant a changé.

Existe-t-il un moyen de savoir si les données ont changé?

une question similaire est également posée ici mais pas répondue à mon avis

Oliver mentionne “si votre object de la liste prend en charge l’événement INotifyPropertyChanged et que vous remplacez la liste par un BindingList, vous pouvez vous abonner à l’événement ListChanged de BindingList pour être informé des modifications apscopes par l’utilisateur.”

Mon application remplit ces conditions, mais je ne peux pas y arriver. La propriété ListChangedType.ItemChanged semblait prometteuse, mais elle change lorsque je navigue vers l’enregistrement suivant sans modifier les données.

J’ai trouvé un lien chez Microsoft ici mais ce ne peut sûrement pas être aussi dur!

Cela semble fonctionner

void bindingSource_BindingComplete(object sender, BindingCompleteEventArgs e) { if (e.BindingCompleteContext == BindingCompleteContext.DataSourceUpdate) { var person = (Person)bindingSource.Current; if ( person.State == State.Unchanged && (e.BindingCompleteState == BindingCompleteState.Success) && e.Binding.Control.Focused) { person.State = State.Modified; // using Julie Lerman's repositories technique } } }