Я работаю над средним WPF-приложением, использующим шаблон MVVM. ViewModels используют INotifyPropertyChanged
для обновления своих соответствующих представлений.
Этот подход работает отлично, за исключением одной проблемы: когда это приложение остается запущенным в течение длительных периодов времени (3-7 дней), Views (каждый просмотр во всем приложении!) внезапно перестает обновлять связанные свойства.
Если я установил точку останова в ViewModels, они с радостью отрываются, называя PropertyChanged
, как будто ничего не случилось. Однако, если я установил точку останова в получателе одного из объектов ViewModel, с которым связан вид, то getter никогда не вызывается!
Я сейчас в тупике и даже не знаю, как правильно отладить эту проблему. Я проверил окно вывода Visual Studio для ошибок привязки данных, но все выглядит нормально. Это почти как если бы механизм привязки данных WPF разбился в фоновом режиме. Это приложение также отслеживает необработанные исключения (AppDomain.UnhandledException
и Dispatcher.UnhandledException
), но исключений не возникает.
Резюме. После длительных периодов времени представления перестают обновлять свои привязки данных, но ViewModels все еще вызывают событие PropertyChanged.
Любые советы???