문제

컨트롤에 액세스 할 필요없이 "오류 제공자"를 통해 표시되는 모든 현재 오류를 열거 할 수 있습니까?

도움이 되었습니까?

해결책

모든 오류를 줄 수있는 요약 유효성 검사기가 있지만 꽤 못 생겼으며 페이지에 표시하지 않고 사용할 수 있는지 확실하지 않습니다. 기술적으로, "올바른 길"을하고 있다면, 모든 오류 처리는 미들 사이어에서 처리 한 다음 화면에 버블 링해야하므로 이미 컬렉션이나 사전의 모든 오류에 액세스 할 수 있습니다.

다른 팁

부모의 컨트롤 컬렉션을 열거하고 각각의 getError를 호출하여 ErrorProvider로부터 모든 오류를 얻을 수 있습니다. 효율적이지는 않지만 작동합니다.

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

.NET Winforms의 경우 Google 등에서 이것을 찾은 사람들의 경우 ...

winforms에서 최소한 모든 컨트롤에 액세스하지 않고 "오류 제공 업체"클래스를 통해 표시되는 모든 현재 오류를 열거하는 경우 Winforms에는 요약 유효성 검사기가 없습니다.

그러나 찰스 그레이엄 (Charles Graham) 포스터가 지적한 것처럼 오류가 하위 레이어에서 오류가 거품이 일면 어쨌든 어딘가에 컬렉션에 액세스 할 수 있어야합니다.

WinForms에서는 응용 프로그램이 잘 정의 된 "레이어"가 없을 정도로 간단한 경우 모든 현재 오류를 기록하고 노출시키는 클래스에서 ErrorProvider를 랩핑 할 수 있습니다. 또는 앱이 정말 간단한 경우 오류를 기록/삭제하고 ErrorProvider를 업데이트하는 도우미 메소드를 작성하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top