我们有一个 3 层架构(UI、BL、DAL)的 WPF 应用程序。我需要处理加载大量行的 WPF 和 DevExpress 数据网格。BL 方法将返回要绑定到 WPF 数据网格的可观察对象集合。如果记录的数量非常大,那么 UI 将变得无响应。因此,我们需要实现一个解决方案,以便在 BL 方法执行查询和处理数据时显示一个进度条,其中包含已完成工作的百分比。在这里,我需要在执行查询时立即获取记录总数,并且在处理完每一行之后,我需要在标签中显示项目处理的当前索引,例如“处理 1/2000 个文档”。
实现上述功能的最佳方法是什么。我们正在使用 MVVM 模式。我是否需要更改我们在 BL 中获取和处理记录的方式(当前是 BL 方法中的 fectch 和处理(将值从数据读取器映射到自定义对象))。或者,当用户滚动数据网格时,我正在寻找以分页方式加载数据网格中的行。
任何样品链接表示赞赏。
编辑:@Big Daddy 您的解决方案 1)向视图模型添加新属性以获得 TotalCount 和 PercentComplete。2) 将视图模型传递给 Search 方法。3)使用BGW更新属性。
以上似乎是一个可行的解决方案。但我很想知道是否有任何其他方法可以在不依赖视图模型的情况下解决这个问题。任何可用于此类操作的设计模式?