1

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

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

另外,我不能使用启动画面(这是要求)。

请建议?

4

1 回答 1

5

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

需要注意的另一件事是,您应该在声明中添加IsAsync="True"属性,让它知道它必须等待数据。这样,您将显示为空,然后当数据准备好时,它将填充。BindingDataGrid.ItemsSourceDataGrid

于 2013-08-06T13:01:42.433 回答