- 시나리오에서 나는 Linq2SQL 데이터 백엔드가 있습니다.
내 데이터 객체 (만 값을 필요로 Validationrules을 실행하기 위해 빠른 지금까지 특별한 것이) IDataErrorInfo는
Name==null
같은 오류를 잡아WPF 긴 유효성 검사 시나리오데이터 객체는 트리 구조로 구성되어 구현, 그래서 각각의 부모를 가지고 있으며, 어린이
DataObjects의 부모 개체에서 선택한 이름이 고유 한 경우 어떻게 유효합니까?
내가 직면 한 문제는 고유 한 이름 유효성 검사가 이름에 TextBox 바인딩에 UpdateSourceTrigger="PropertyChanged"
인 경우 입력하는 동안 지연되는 데이터베이스 왕복이 필요하다는 것입니다.
반면에 UpdateSourceTrigger="LostFocus"
을 설정할 수는 있지만 그 문제는 유효/유효하지 않은 데이터에 "저장"버튼을 활성화/비활성화한다는 것입니다. 이제 무효 상태에서 저장 단추를 클릭 할 수 없으므로 텍스트 상자가 포커스를 잃을 수있는 방법이 없습니다. 포커스를 업데이트하는 것만합니다 (탭을 사용하면 추한 것입니다 만 LostFocus에서는 더 많은 "사용 불가능"이 있습니다 (예 : 따라서) 이름을 변경
:.
<TextBox Grid.Column="1">
<TextBox.Text>
<Binding Path="Foldername">
<Binding.ValidationRules>
<wpfresources:UniqueChildValidationRule ValidationStep="UpdatedValue" **UpdateSourceTrigger="LostFocus"**>
... stuff here ...
</wpfresources:UniqueChildValidationRule>
<DataErrorValidationRule **UpdateSourceTrigger="PropertyChanged"**/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
어떻게이 문제를 해결하는 가장 좋은 방법은
? 수정
This MSDN article은 BindingGroup이 갈 길이 란 것을 제안하는 것처럼 보입니다. 그 조사거야 ... 그것은 가치가 무엇인지에 대한
답변 greg에 감사드립니다. 사용자가 데이터를 제출 한 후에 오류를보고하는 것이 내 문제의 일부입니다. 타당성 확인은 분명히 작동하지 않았으며 다른 유효성 검사 규칙을 방해합니다. 내가 게시 한 솔루션이 이제는 나를 발견했다. –