我的设置简化如下:
我的主要窗口仅包含ContentPresenter
,每个视觉效果都是View
,其中填充了ViewModel
的数据,这些数据由一组DataTemplate
分配,每个ViewModel
分配{ {1}}到特定的View
。
View
还包含ContentPresenter
和ItemControl
以显示嵌套的ViewModel
。
您可以将主窗口视为“从此文件夹开始递归显示每个文件和文件夹”,文件和文件夹有View
个/ ViewModel
个。
我在后台线程中预加载ViewModel
并在主窗口中显示“加载”消息(主窗口响应,尽管你不能做任何事情)。
在创建ViewModel
之后,我编组了DataContext的交换。
在View
全部装满之前,主窗口会冻结约。 2秒。
此次分析应用程序没有显示,很可能是因为它是在未分析的某个WPF核心中完成的。
有没有办法在不阻止用户界面的情况下“预加载/预渲染”View
?
我知道当应用程序在被阻止时没有显示任何内容时,在这个具体案例中可能不会引起关注。但是也有类似的情况显示有用的东西。