WPF窗口冷启动 - 显示黑屏

Den*_*nis 1 c# wpf xaml mvvm

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

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

此外,我不能使用Splash屏幕(它在要求中).

请指教?

She*_*dan 5

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

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