Question

Les informations IDataError peuvent-elles être utilisées correctement dans une application winforms? Dans le passé, je liais de la manière habituelle (1) et faisais la validation dans l'événement OnValidating du contrôle particulier. Je souhaite déplacer la validation des données vers le modèle de domaine afin de pouvoir facilement échanger les interfaces utilisateur et pour que toute la logique se trouve au même endroit.

Je cherchais dans IDataErrorInfo mais tout ce que je trouve traite de WPF et de l'application en cours de développement est strictement une application winforms.

J'ai également remarqué que la liaison utilisée dans WPF se trouve dans System.Windows.Data et que la liaison que j'ai toujours utilisée est dans System.Windows.Forms (que je ne semble pas avoir lorsque j'essaie. pour l’ajouter en tant que ressource - j’utilise la version 3.5) .Autour de la propriété " ValidatesOnDataErrors " y a-t-il une différence entre les deux?

(1) la manière habituelle étant:

myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));
Était-ce utile?

La solution

Ceci fonctionne avec le ErrorProvider . composant dans Windows Forms.

Pour un tutoriel complet, mais très simple et rapide, voir cet article de blog .

Autres conseils

Oui, IDataErrorInfo fonctionne dans Winforms. Par exemple, DataGridView l'utilisera automatiquement à la fois par ligne et par cellule. Mais il est spécifique à l'implémentation et n'est pas automatiquement appliqué à d'autres liaisons. Une fois, j’ai écrit du code pour l’associer à un fournisseur d’erreur et effectuer le travail via des événements de changement, mais je ne l’ai malheureusement pas sous la main. Mais je crois me souvenir que ce n’était pas énorme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top