2017-01-31 6 views
0

IDataErrorInfo와 유효성 검사 규칙을 조합하여 유효성 검사를 수행하는 WPF 응용 프로그램에서 작업하고 있습니다. 런타임에 유효성 검사 결과를 표시하기 위해 창의 XAML에서 일부 스타일을 만들었습니다. 이러한 스타일의 하나는 한 입력 오류가 다른 이름으로 저장 버튼을 비활성화해야합니다 :하나의 버튼에만 검증 결과를 적용 할 수 있습니까?

  1. 스타일 창에서 모든 버튼을 비활성화합니다

    <Window.Resources> 
        <!--Disabling the Save-button by style not viewmodel-property--> 
        <Style TargetType="{x:Type Button}"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding ElementName=tbx_firstname, Path=(Validation.HasError)}" Value="true"> 
           <Setter Property="IsEnabled" Value="False"/> 
          </DataTrigger> 
          <DataTrigger Binding="{Binding ElementName=tbx_lastname, Path=(Validation.HasError)}" Value="true"> 
           <Setter Property="IsEnabled" Value="False"/> 
          </DataTrigger> 
          <DataTrigger Binding="{Binding ElementName=tbx_age, Path=(Validation.HasError)}" Value="true"> 
           <Setter Property="IsEnabled" Value="False"/> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
    </Window.Resources> 
    

    나는 두 가지 문제가있다. 저장 버튼 만 사용 중지하려면 어떻게해야합니까? 나는 다음을 시도했지만 (VS 그것을 허용하지 않습니다) 구문 오류가있을 것 같습니다 :

    <Style TargetType="{x:Name btn_save}"> 
    
  2. 내가 검증 각 컨트롤을 확인해야하는 저장 버튼의 스타일에서. (보기 모델과 결합해야하기 때문에) 해당 부분을 짧게 만들고 오류가 발생하기 쉬운 가능성이 있습니까?

미리 감사드립니다.

<Style x:Key="SaveButtonStyle" TargetType="{x:Type Button}"> 

는에 암시 적으로 적용되지 않습니다 그런 식으로 : 당신이 당신의 스타일 대신 그들 모두의 하나의 버튼에 적용하려면

답변

1

, 당신은 예를 들어, 스타일에 키를 할당해야 모든 단추. 저장 버튼에 적용하려면 버튼의 스타일을 명시 적으로 지정하십시오.

<Button Style="{StaticResource SaveButtonStyle}"> 
+0

대단히 감사합니다. Manfred! 1 분 전에 같은 것을 발견했습니다. 약간의 키가 그런 차이를 만듭니다. –