Domanda

Le informazioni IDataError possono essere utilizzate correttamente in un'applicazione winforms? In passato stavo eseguendo il binding nel solito modo (1) e ho eseguito la convalida nell'evento OnValidating del controllo specifico. Vorrei spostare la convalida dei dati nel modello di dominio in modo da poter scambiare facilmente le interfacce utente e in modo che tutta la logica sia in un unico posto.

Stavo cercando IDataErrorInfo ma tutto quello che trovo riguarda WPF e l'app in sviluppo è rigorosamente un'app winforms.

Ho anche notato che l'associazione che viene utilizzata in WPF è in System.Windows.Data e l'associazione che ho sempre usato è in System.Windows.Forms (che non sembra avere quando provo per aggiungerlo come risorsa - sto usando 3.5). A parte la proprietà " ValidatesOnDataErrors " c'è una differenza tra i due?

(1) come al solito:

myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));
È stato utile?

Soluzione

Funziona con il ErrorProvider componente in Windows Form.

Per un tutorial completo, ma molto semplice e breve, vedi questo post sul blog .

Altri suggerimenti

Sì, IDataErrorInfo funziona in winforms. Ad esempio, DataGridView lo utilizzerà automaticamente sia per riga che per cella. Ma è specifico dell'implementazione e non automaticamente applicato ad altri binding. Una volta ho scritto del codice per associarlo a un provider di errori e fare il lavoro tramite eventi di modifica, ma sfortunatamente non ce l'ho. Ma mi sembra di ricordare che non era enorme.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top