사용자 경고를 오류와 비슷한 방식으로 표시하려면 어떻게해야합니까? 유일한 차이점은 예를 들어, TextBox에는 다른 오류 템플릿이 있어야하며 Validation.HasError와 유사하게 Validation.HasWarning이 있어야합니다.WPF 별도의 오류 및 경고 스타일
즉, 모든 유효성 검사 문제가 "오류"(적어도 우리의 응용 프로그램에서는)가 아닙니다. 우리는 어떤 것이 경고인지 오류인지를 시각적으로 나타내려고합니다.
사용자 경고를 오류와 비슷한 방식으로 표시하려면 어떻게해야합니까? 유일한 차이점은 예를 들어, TextBox에는 다른 오류 템플릿이 있어야하며 Validation.HasError와 유사하게 Validation.HasWarning이 있어야합니다.WPF 별도의 오류 및 경고 스타일
즉, 모든 유효성 검사 문제가 "오류"(적어도 우리의 응용 프로그램에서는)가 아닙니다. 우리는 어떤 것이 경고인지 오류인지를 시각적으로 나타내려고합니다.
때때로 나는 그 중간계에 대한 필요성을 느낍니다. true
또는 false
대신 CanExecute
에서 3 개의 값을 필요로하는 Command
과 같습니다.
유효성 검사와 마찬가지로 작동하는 경고에 관해서는 함께 정리해야 할 모든 조각을 알 수는 없지만 어떻게 시작해야하는지 알 것 같습니다.
첨부 된 속성 및 연결된 동작 (개체의 이벤트에 가입하고 해당 이벤트와 관련된 작업을 수행하는 첨부 된 속성)에 의존해야합니다. Validation
속성과 마찬가지로 경고가 발생하는지 여부를 확인하는 데 사용할 ValidationRule
개체 컬렉션을 관리하는 개체가있을 수 있습니다. HasWarning
이라는 스타일이 스타일/템플릿 트리거에서 참조 할 수있는 유효성 검사에 의해 설정되거나 설정 해제 될 수 있습니다.
경고 표시를 각 컨트롤 템플릿의 일부로 만들거나 Validation
을 다시 모방하고 WarningTemplate
첨부 속성을 사용하여 경고 정보를 AdornerLayer
에 배치 할 수 있습니다.
사용자 정의 때문에 ValidationRule
객체는 ErrorContent
단순히 객체 된 ValidationResult
개체를 반환하고,이 객체는 ErrorContent
로 ValidationError
객체에 노출되어, 당신은 또한 결국 일반 유효성 검사를 사용할 수 있습니다. 당신은 객체를 ErrorType
이라는 경고 또는 오류 속성을 가지고 ErrorTemplate
에 바인딩 할 수 있습니다.
ValidationError
을 사용하면 허용 할 특정 작업 (예 : 버튼 누름)이 허용되지 않을지 모르겠지만 을 판단하는 ViewModel의 일종의 프록시를 만들 수 있습니다.
+1 'ErrorContent'는 문자열이 아닌 객체입니다. 이것은 이것을 달성하는 아주 간단한 방법입니다. 오류, 경고 및 정보 하위 클래스가있는 메시지 클래스와 각 유형의 'DataTemplate'클래스를 만들면됩니다. –