WPF窗口冷启动 - 显示黑屏

时间:2013-08-06 12:51:13

标签: c# wpf xaml mvvm

我有一个使用MVVM模式的WPF应用程序。启动窗口包含3个控件MenuTitleBarDataGrid。目前,完成所有操作(从服务获取数据,动态生成DataGrid及其渲染)大约需要5秒钟,之后它会突然显示给UI。问题是,最终用户在启动程序后必须等待5秒才能看到窗口。大多数操作都与DataGrid有关。所以我将DataGrid相关代码移动到Window Loaded事件,现在窗口突然打开但显示黑屏,一段时间后它显示DataGrid数据。

所以我的目标是显示带有MenuTitleBar的窗口,在完成初始加载后,执行任务以在后台线程中加载DataGrid以便我可以显示视图中的加载面板。如何在完成初始加载后调用与DataGrid相关的特定方法?

另外,我不能使用Splash屏幕(这是在要求中)。

请建议?

1 个答案:

答案 0 :(得分:5)

您应该在后台执行任何长时间运行的过程Thread ...这将释放您的用户界面。如果您不熟悉多线程应用程序,请查看MSDN上的BackgroundWorker Class页面,因为它包含代码示例。

另外需要注意的是,您应该在IsAsync="True"上的Binding声明中添加DataGrid.ItemsSource属性,让它知道它必须等待数据。这样,您的DataGrid将显示为空,然后当数据准备就绪时,它将填充。