Domanda

È possibile enumerare tutti gli errori correnti visualizzati tramite un "Error Provider" senza dover accedere ai controlli?

È stato utile?

Soluzione

Esiste un validatore di riepilogo che ti darà tutti gli errori, ma è piuttosto brutto e non sono sicuro che puoi usarlo senza visualizzarlo sulla pagina. Tecnicamente, se stai facendo le cose nel modo "giusto", tutta la tua gestione degli errori dovrebbe essere gestita nella tua tana centrale e quindi gorgogliata allo schermo in quel modo, quindi hai già accesso a tutti gli errori in una raccolta o in un dizionario.

Altri suggerimenti

Puoi ottenere tutti gli errori da un ErrorProvider enumerando la raccolta Controls del suo genitore e chiamando GetError su ciascuno. Non efficiente ma funziona.

foreach (Control ctrl in errProv.ContainerControl.Controls)
{
    Console.WriteLine(errProv.GetError(ctrl));
}

Per tutte le persone .net WinForms che lo trovano su google ecc ...

In WinForms almeno enumerando tutti gli errori correnti visualizzati tramite un "Error Provider" La classe senza accedere a tutti i controlli non è possibile, non c'è nemmeno un validatore sommario in WinForms.

Tuttavia, se i tuoi errori si diffondono da un livello inferiore, dovresti comunque avere accesso a una loro raccolta da qualche parte, come sottolinea il poster Charles Graham.

In WinForms, se la tua applicazione è abbastanza semplice da non avere "layer" ben definiti; quindi potresti avvolgere ErrorProvider in una classe che registra ed espone tutti gli errori correnti. Oppure, se l'app è davvero molto semplice, crea un metodo di supporto che registra / elimina un errore e aggiorna ErrorProvider.

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