2017-01-31 1 views
0

私はIDataErrorInfoと検証ルールを組み合わせて検証するWPFアプリケーションを開発しています。 実行時に検証の結果を表示するために、ウィンドウのXAMLでいくつかのスタイルを作成しました。これらのスタイルの 一つは限り入力エラーが存在するとして保存ボタンを無効にする必要があります。検証の結果に対して特定のスタイルを1つのボタンに適用することはできますか?

  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> 
    

    私は2つの問題を抱えています。保存ボタンを無効にするだけで何ができますか? 私は次のことを試してみましたが、(VSはそれを受け入れていません)シンタックスエラーをがあるようです:

    <Style TargetType="{x:Name btn_save}"> 
    
  2. 私が検証され、各コントロールをチェックする必要があり、保存ボタンのスタイルで。 (ビューモデルと組み合わせる必要があるため)その部分を短く、エラーを起こしにくくする別の可能性はありますか?

ありがとうございます!

答えて

1

あなたはあなたのスタイルではなく、それらのすべての単一のボタンに適用する場合は、あなたのスタイルにキーを割り当てる必要があり、例えば:

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

それが暗黙的に適用されることはありませんその方法すべてのボタン。保存ボタンに適用するには、ボタンのスタイルを明示的に指定してください:

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

ありがとうございますManfred!私は1分前に​​同じことを見つけました。ちょっとした鍵がこのような違いをもたらします。 –

関連する問題