WPF 利用BackgroundWorker 动态加载UI
来源:互联网 发布:linux获取cpu型号 编辑:程序博客网 时间:2024/04/29 00:17
BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += (ee, se) => { //TODO 需要异步请求的操作 }; bw.RunWorkerCompleted += (ew, sw) => { Dispatcher.Invoke(new Action(() => {<span style="white-space:pre"></span>//TODO 动态生成UI })); }; bw.RunWorkerAsync();
Demo:
List<ResourceIndex> CourseWareList = new List<ResourceIndex>();//课件List<ResourceIndex> TeachingPlanList = new List<ResourceIndex>();//教案List<ResourceIndex> ExercisesList = new List<ResourceIndex>();//习题List<ResourceIndex> MaterialList = new List<ResourceIndex>();//素材List<ResourceIndex> resList = new List<ResourceIndex>();string bookCode = EBookContext.Instance.CurrentBook.IndexInfo.Code;string unitCode = EBookContext.Instance.CurrentUnit.UnitCode;BackgroundWorker bw = new BackgroundWorker();bw.DoWork += (ee, se) => { resList = SearchResource(bookCode, unitCode); foreach (ResourceIndex resIndex in resList) { switch (resIndex.Usage) { case ResourceUsage.Courseware: CourseWareList.Add(resIndex); break; case ResourceUsage.TechingDesign: TeachingPlanList.Add(resIndex); break; case ResourceUsage.TestQuestion: ExercisesList.Add(resIndex); break; case ResourceUsage.TeachMaterial: MaterialList.Add(resIndex); break; default: break; } } };bw.RunWorkerCompleted += (ew, sw) => { Dispatcher.Invoke(new Action(() => { ClearResource(); this.onLoading.Visibility = Visibility.Collapsed; if (CourseWareList.Count > 0) { ResDetailContainer resc1 = new ResDetailContainer("课件", "#FF48B95A", CourseWareList); this.resContainer.Children.Add(resc1); } if (TeachingPlanList.Count > 0) { ResDetailContainer resc2 = new ResDetailContainer("教案", "#FFFB5454", TeachingPlanList); this.resContainer.Children.Add(resc2); } if (ExercisesList.Count > 0) { ResDetailContainer resc3 = new ResDetailContainer("习题", "#FF3E80DA", ExercisesList); this.resContainer.Children.Add(resc3); } if (MaterialList.Count > 0) { ResDetailContainer resc4 = new ResDetailContainer("素材", "#FFE7B01B", MaterialList); this.resContainer.Children.Add(resc4); } if (resList.Count == 0) { this.noRes.Visibility = Visibility.Visible; } })); };bw.RunWorkerAsync();
3 0
- WPF 利用BackgroundWorker 动态加载UI
- WPF--自定义控件的动态添加以及BackgroundWorker的使用
- WPF 动态加载usercontrol
- WPF动态加载XAML
- WPF BackgroundWorker vs. Dispatcher
- WPF Multithreading with BackgroundWorker
- WPF 的 BackgroundWorker
- 动态加载UI
- WPF:动态加载xaml对象
- wpf 窗体Load事件加载数据导致白屏 先展示加载进度BackgroundWorker(直至加载完成)显示
- 在WPF 中使用 BackgroundWorker
- BackgroundWorker改变WPF进度条值
- 利用Loader来动态加载不同的QML文件来改变UI
- wpf中利用布局动态添加控件
- 在UI上使用BackgroundWorker
- 在UI上使用BackgroundWorker
- UI操作BackgroundWorker与Thread
- wpf Image动态加载图片终极解决办法
- 探索R包plyr:脱离R中显式循环
- 那些年ios大神用过的神器
- js数组的push pop split concat join
- 数据库专题——SQL语句执行顺序
- oci_new_cursor
- WPF 利用BackgroundWorker 动态加载UI
- 第十三章 13.2.1节练习
- Install ncurses(ncurses-devel) and try again
- 主机win7中CuteFTP与 VMware虚拟机CentOS 无法上下传文件(553 could not create file)
- Android推送服务——百度云推送
- 终于解决“Git Windows客户端保存用户名与密码”的问题
- Sharepoint习题——SPSite和SPWeb
- Linux 运行级别
- Unix/linux版本简介