2017-01-31 2 views
0

Я работаю над WPF-приложением, в котором я делаю валидацию с сочетанием правил IDataErrorInfo и проверки. Для отображения результатов проверки во время выполнения я создал некоторые стили в XAML окна. Один из этих стилей следует отключить кнопку сохранения, до тех пор, пока существует ошибка ввода:Могу ли я применить определенный стиль для результатов проверки до одной кнопки?

<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> 

У меня есть две проблемы:

  1. Стиль выключает все кнопки на окне. Что я могу сделать, чтобы отключить кнопку сохранения? Я попытался следующий, но там, кажется, синтаксический ошибкой (VS не принимает его):

    <Style TargetType="{x:Name btn_save}"> 
    
  2. В стиле для кнопки сохранения я должен проверить каждый элемент управления, проверенные. Есть ли еще одна возможность сделать эту часть короче и менее подверженной ошибкам (потому что она должна сочетаться с viewmodel)?

Заранее благодарен!

ответ

1

Если вы хотите, чтобы ваш стиль будет применен к одной кнопки, а не все из них, вам нужно назначить ключ к стилю, например:

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

Таким образом, он не будет применяться неявно все кнопки. Чтобы применить его к вашей кнопке сохранения, прямо укажите стиль на кнопке:

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

Большое спасибо Manfred! Я обнаружил то же самое минуту назад. Просто маленький ключ делает такую ​​разницу. –

 Смежные вопросы

  • Нет связанных вопросов^_^