c# - 为什么 await 会触发数据绑定过程?
问题描述
我开始在我的 WPF 应用程序中使用 await / async。我意识到尽管应用程序正常工作,但出现了大量的绑定错误。我发现了错误,DataContext
设置得太晚了。当我使用下一行时出现绑定错误:
var viewAccounts = await db.ViewAccounts.Where(e => e.ActiveAssetAcount == true).ToListAsync();
但是,如果我使用同步版本,则不会出现绑定错误(尽管DataContext
尚未设置)。
var viewAccounts = db.ViewAccounts.Where(e => e.ActiveAssetAcount == true).ToList();
差异的原因是什么?有没有办法在我设置之前禁用数据绑定过程DataContext
?
解决方案
等待方法不会触发数据绑定过程。
而不是试图“禁用数据绑定过程,直到你设置DataContext
”你应该DataContext
立即设置,然后在你的异步方法返回并且你拥有所有信息后设置数据绑定属性。
确保您实现INotifyPropertyChanged
了在属性更新时通知视图。
推荐阅读
- python - AttributeError:模块“tensorflow”没有属性“compat”
- python - 将 JSON 解析为不带前缀的 Pandas
- ruby-on-rails - 葡萄添加新端点
- mongodb - Spring Boot Mongo DB中无法解析的日期错误格式
- sas - 用于内核密度 SAS 的默认值
- node.js - UnhandledPromiseRejectionWarning: 错误: 禁止 SendGrid WebAPI 错误
- docker - 如何在 ecs2 fargate 中通过 docker-compose up 运行 docker
- java - 在 Android 中运行 SQLite 查询
- c++ - 如何移动 QListWidgetItem?
- google-sheets - 由于 googlesheets 更改为 V8 运行时,我的脚本都不起作用。如何打开表到今天的日期并备份表?