[英]WPF Window Cold Start - showing black screen
我有一个使用MVVM模式的WPF应用程序。 启动窗口由3个控件Menu
, TitleBar
和DataGrid
。 当前,完成所有操作(从服务中获取数据,动态生成DataGrid
及其呈现)大约需要5秒钟,然后突然向UI显示。 问题是,最终用户在启动程序后必须等待5秒钟才能看到该窗口。 大多数操作与DataGrid
有关。 因此,我将与DataGrid
相关的代码移至“ Window Loaded
事件”,现在窗口突然打开,但显示黑屏,并在一段时间后显示了带有数据的DataGrid。
因此,我的目标是显示带有Menu
和TitleBar
的窗口,并在完成初始加载后,执行任务以在后台线程中加载DataGrid
,以便可以在视图中显示加载面板。 完成初始加载后,如何调用与DataGrid
相关的特定方法?
另外,我不能使用启动屏幕(这是必需的)。
请提出建议?
您应该在后台Thread
执行任何长时间运行的过程……这将释放您的UI。 如果您不熟悉多线程应用程序,请查看MSDN上的BackgroundWorker类页面,因为它具有代码示例。
需要注意的另一件事是,您应该将IsAsync="True"
属性添加到DataGrid.ItemsSource
Binding
声明中,以使其知道它必须等待数据。 这样,您的DataGrid
将显示为空,然后在数据准备就绪时填充它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.