【发布时间】:2013-08-06 12:51:12
【问题描述】:
我有一个使用 MVVM 模式的 WPF 应用程序。启动窗口由Menu、TitleBar 和DataGrid 三个控件组成。目前完成所有操作(从服务获取数据,动态生成DataGrid 及其渲染)大约需要 5 秒,然后它会突然显示到 UI。问题是,最终用户在启动程序后必须等待 5 秒钟才能看到窗口。大部分操作与DataGrid相关。所以我将DataGrid 相关代码移动到Window Loaded 事件,现在窗口突然打开但显示黑屏,一段时间后它显示带有数据的DataGrid。
所以我的目标是显示带有Menu 和TitleBar 的窗口,并在完成初始加载后,执行在后台线程中加载DataGrid 的任务,以便我可以在视图中显示加载面板.完成初始加载后,如何调用与DataGrid 相关的特定方法?
另外,我不能使用启动画面(这是要求)。
请推荐?
【问题讨论】:
-
使用 ContentRendered 而不是 Loaded
-
使用 MVVM 将您的数据访问操作转移到后台工作程序中,并提供某种类型的加载图像 gif 或标签来告诉您的最终用户工作正在完成。