我正在开发一个利用 MVVM 模式的中型 WPF 应用程序。ViewModel 用于INotifyPropertyChanged
刷新它们各自的 View。
这种方法非常有效,除了一个问题:当这个应用程序长时间运行(3-7 天)时,视图(整个应用程序中的每个视图!)突然停止更新它们的绑定属性。
如果我在 ViewModels 中设置断点,它们就会愉快地离开,PropertyChanged
就像什么都没有错一样调用。但是,如果我在 View 绑定到的 ViewModel 对象之一的 getter 中设置断点,则永远不会调用 getter!
在这一点上我很难过,甚至不知道如何正确调试这个问题。我检查了 Visual Studio 输出窗口中的数据绑定错误,但一切看起来都很正常。就好像 WPF 数据绑定引擎在后台崩溃了一样。此应用程序还在监视未处理的异常 (AppDomain.UnhandledException
和Dispatcher.UnhandledException
),但没有抛出异常。
总结:经过很长一段时间,视图停止更新其数据绑定,但视图模型仍在调用 PropertyChanged 事件。
有什么建议???