我正在使用MVVM和ViewModel-First方法开发WPF应用程序。 ViewModel-First中常见的页面导航方式是将ViewModel设置为ContentControl的内容。通过使用DataTemplates,可以呈现正确的视图。
当要替换的视图具有复杂的可视树时,替换ContentControls内容可能会导致性能问题。它需要卸载,这意味着整个树被递归清理。这在blogpost中有详细解释。我注意到这取决于设备,但最多可以在10秒内卸载复杂的页面。
我目前已找到2个解决此问题的方法: