Я уже некоторое время работаю с WPF и шаблоном MVVM.Я испытываю трудности с получением проверки работающим "обычным" способом:
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, поскольку он очень специфичен для View ...
Любые идеи были бы хорошими.Я много искал в Интернете, но не могу найти правильного решения ...