Pergunta

É possível enumerar todos os erros atuais sendo exibido através de um "Provedor de erro" sem ter que acessar os controles?

Foi útil?

Solução

Há um validador resumo que lhe dará todos os erros, mas é muito feio, e eu não tenho certeza se você pode usá-lo sem exibi-lo na página. Tecnicamente, se você está fazendo as coisas do "jeito certo", todos vocês tratamento de erros devem ser manipulados em sua teir midddle e então borbulhar para a tela dessa maneira, então você já tem acesso a todos os erros em uma coleção ou dicionário.

Outras dicas

Você pode obter todos os erros de um ErrorProvider enumerando a coleção Controls de seu pai e chamando getError em cada um. Não eficiente, mas ele funciona.

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

Para quaisquer pessoas WinForms .net que acham isso no google etc ...

No WinForms, pelo menos, enumerando todos os erros atuais que estão sendo exibidos através de uma classe "Provedor de erro" sem acessar todos os controles não é possível, não há sequer um validador resumo em WinForms.

No entanto, se os seus erros são borbulhando de uma camada inferior, em seguida, você deve ter acesso a uma coleção deles em algum lugar de qualquer maneira, como o cartaz destaca Charles Graham.

No WinForms, se seu aplicativo é simples o suficiente para não ter qualquer "camadas" bem definidos, então você poderia envolver o ErrorProvider em uma classe que grava e expõe todos os erros atuais. Ou, se o app é realmente muito simples, criar um método auxiliar que grava / elimina um erro e atualiza o ErrorProvider.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top