Я уже некоторое время работаю с WPF и шаблоном MVVM. Я испытываю трудности с получением проверки, работая «обычным» способом:Проверка формы в WPF
1) Я реализую интерфейс IDataErrorInfo в своей модели ViewModel. XAML выглядит примерно так:
<TextBox Grid.Column="1"
Grid.Row="1"
Text="{Binding Path=ProjectKey, ValidatesOnDataErrors=True, UpdateSourceTrigger=LostFocus}" />
Проблема здесь состоит в том, что используется ли LostFocus и PropertyChanged триггера, текстовое поле проверяется перед пользователем, когда-либо вкладок этого элемента управления. Это означает, что если я проверяю пустые поля, пользователь увидит много красных, когда они сначала откроют форму. В идеале вход будет подтвержден только после первого «потерянного фокуса» или «изменения свойств» или после нажатия кнопки «Отправить».
2) Другая проблема - это проверка в конце, когда пользователь нажимает «Отправить». Перед отправкой в базу данных есть определенные вещи, которые вы хотите проверить, например, дубликаты. Я понимаю, что могу использовать UpdateSourceTrigger = Explicit и вызывать метод UpdateSource для всех элементов управления. Мне интересно, есть ли способ сделать это в шаблоне MVVM. Кажется, что такой код не должен быть в ViewModel, так как он очень определен ...
Любые идеи были бы замечательными. Я искал много в Интернете, но не могу найти правильное решение ...
http://stackoverflow.com/questions/2821998/how-can-i-get-wpf-to-not-display-validation-errors-upon-initial-display-of-contro/2829884#2829884 может решить обе проблемы – nash