2011-08-09 5 views
0

UserControl이 내 뷰 모델에 묶여 있습니다. 보기 모델 구현은 IDataErrorInfo입니다. UserConrolValidation.ErrorTemplate입니다. 내가 (예 : ComboBox의 선택이) 몇 가지 속성을 변경하면WPF UserControl 유효성 확인 문제

<UserControl.Style> 
    <Style TargetType="{x:Type UserControl}"> 
     <Setter Property="Validation.ErrorTemplate"> 
      <Setter.Value> 
       <ControlTemplate> 
        <DockPanel> 
         <AdornedElementPlaceholder x:Name="adorner"> 
          <Image x:Name="imgError" 
             Width="32" 
             Height="32" 
             Margin="5" 
             HorizontalAlignment="Left" 
             VerticalAlignment="Bottom" 
             ToolTip="{Binding ElementName=adorner,Path=AdornedElement.(Validation.Errors),Converter={StaticResource ValidationErrors2TooltipConverter},ConverterParameter='Couldn't save hour work:'}" 
             Source="{StaticResource ErrorDrawingImage}" /> 
         </AdornedElementPlaceholder> 
        </DockPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Style> 

:이 템플릿에서 나는 오류 툴팁을 보여 변환기를 사용, 오류의 수를 변경해야하지만, 그렇지 않습니다. ToolTip에서 오류를 새로 고치는 방법을 찾지 못했습니다.

질문 :

  1. 어떻게 ToolTip 오류를 새로 고칠 수 있습니다.
  2. 유효성 검사는 UserControl에서 올바르게 작동하지만 내부 부품에서는 작동하지 않습니다. UserControl의 구성 요소에 대해 Validation.ErrorTemplate을 정의했지만 표시되지는 않지만 컨트롤은 뷰 모델 (IDataErrorInfo)에 묶여 있습니다.

답변

0

유효성 검사 패턴은 UserControl 내부의 각 컨트롤에 적용되어야합니다. "상속"은 없습니다.

+0

그래서 각 컨트롤에 대해 'IDataErrorInfo'를 구현하는 자체 뷰 모델을 생성해야합니까? 두 번째 문제는 해결 될지도 모르지만 우선은 어떨까요? –

+0

다음은 좋은 자습서입니다. http://codeblitz.wordpress.com/2009/05/08/wpf-validation-made-easy-with-idataerrorinfo/ –

+0

여러 모델을 작성해야한다고 생각하지 않지만 ValidationError는 각 컨트롤에 대해 정의됩니다. –