2015-02-02 3 views
2

Я пытаюсь отключить/включить кнопку, когда текстовое поле проверено.Включить кнопку, когда текстовое поле проверено в WPF

Я получаю подтверждение на работу (я знаю, что он работает, потому что он меняет дизайн). Но я не могу заставить кнопку перейти от отключенного к включенному, когда текстовое поле проверено.

Вот мой код:

<AdornerDecorator> 
    <TextBox Width="150" 
      Validation.ErrorTemplate="{StaticResource ValidationErrorTemplate}" 
      x:Name="OrgNoTextBox"> 
     <TextBox.Text> 
      <Binding Path="Customer.OrgNo" UpdateSourceTrigger="PropertyChanged" > 
       <Binding.ValidationRules> 
        <client:RegexValidationRule ValidatesOnTargetUpdated="True" Pattern="OrgNo" /> 
       </Binding.ValidationRules> 
      </Binding> 
     </TextBox.Text> 
    </TextBox> 
</AdornerDecorator> 

...

<Button Width="80" 
     Height="25" 
     Margin="0 0 5 0" 
     Command="{Binding OkCommand}" 
     HorizontalAlignment="Left" 
     IsDefault="True" 
     Content="Save"> 
    <Button.Style> 
     <Style TargetType="{x:Type Button}"> 
      <Setter Property="IsEnabled" Value="false" /> 
      <Style.Triggers> 
       <MultiDataTrigger> 
        <MultiDataTrigger.Conditions> 
         <Condition Binding="{Binding ElementName=OrgNo, Path=(Validation.HasError)}" 
             Value="false" /> 
        </MultiDataTrigger.Conditions> 
        <Setter Property="IsEnabled" 
          Value="true" /> 
       </MultiDataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 

ответ

5

Ваш ElementName в MultiDataTrigger неправильно. Он должен быть OrgNoTextBox вместо OrgNo.

+0

Спасибо! Простое решение моей простой ошибки. Пробовал разные вещи около часа. – Verendus

0

Фавориты

private void Grid_MouseMove_1(object sender, MouseEventArgs e) 
    { 
     btn.IsEnabled = false; 
     if (txt.IsArrangeValid == true) 
     { 
      btn.IsEnabled = true; 
     } 
    } 

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

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