У меня есть приложение C # WPF MVVM, которое отлично работает.
Единственная проблема - когда я изменяю текстовое поле и нажимаю на меню. Если я сделаю это, не щелкнув другой элемент управления, событие view-> viewmodel никогда не будет запущено, потому что текстовое поле не потеряло фокус. Поправьте меня, если я ошибаюсь, но я думаю, что RaisePropertyChanged срабатывает только в LostFocus (или OnBlur, или в любом подобном событии).
Таким образом, нажатие кнопки сохранения в меню сразу после редактирования текстового поля приводит к тому, что модель просмотра сохраняет данные с использованием старых значений.
Итак, продолжая:
Эта последовательность работает нормально:
- Отредактируйте текстовое поле
- Щелкните другой элемент управления
- RaisePropertyChanged запускается, модель просмотра обновляется
- Нажмите кнопку сохранения в меню
- Данные сохранены с правильными значениями
Эта последовательность дает мне ошибку:
- Отредактируйте текстовое поле
- Нажмите кнопку сохранения в меню
- Данные сохранены с правильными значениями
Как это решить?