2015-05-19 2 views
1

Я новичок в WPF и создаю приложение, в котором всего несколько текстовых полей. Текстовые поля привязаны к некоторому источнику, используя MVVM. Теперь, когда я нажимаю кнопку «Сохранить», он должен запускать проверку для всех пустых текстовых полей, а сохранение события не должно запускаться. Как я могу достичь этого в WPF.Как правильно выполнить проверку текстового поля

Я написал валидатор, но он не называется. Смотрите мой код ниже:

<TextBox Width="250" Grid.Row="0" Grid.Column="1" Margin="10"> 
     <TextBox.Text> 
      <Binding Path="ContinuousModel.FileName" ValidatesOnDataErrors="True" NotifyOnValidationError="True" Mode="TwoWay" ValidatesOnExceptions="True"> 
       <Binding.ValidationRules> 
        <validate:RequiredFieldValidatation /> 
       </Binding.ValidationRules> 
      </Binding> 
     </TextBox.Text> 
    </TextBox> 


public class RequiredFieldValidatation:ValidationRule 
{ 
    public override ValidationResult Validate(object value, CultureInfo cultureInfo) 
    { 
     if (value == null || value.ToString() == string.Empty) 
      return new ValidationResult(false, "Value cannot be empty"); 
     return ValidationResult.ValidResult; 
    } 
} 

выше валидатор вызывался только если какой-то текст написан затем изменить фокус затем вернуться и удалить значение, а затем изменить фокус.

ПРИМЕЧАНИЕ.: Используя MVVM и datatemplates, я загружаю пользовательские элементы управления varios, и эти элементы управления привязаны к viewmodel. Кнопка «Сохранить» находится в разных пользовательских элементах управления, поэтому я не могу проверять все текстовые поля вручную при нажатии кнопки «Сохранить».

ответ

1

Добавить свойство UpdateSourceTrigger в вашу привязку;

<Binding Path="ContinuousModel.FileName" UpdateSourceTrigger=PropertyChanged ValidatesOnDataErrors="True" NotifyOnValidationError="True" Mode="TwoWay" ValidatesOnExceptions="True"> 
      <Binding.ValidationRules> 
       <validate:RequiredFieldValidatation /> 
      </Binding.ValidationRules> 
     </Binding> 
Смежные вопросы