首页 > 解决方案 > 为什么 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

标签: c#wpfdata-bindingasync-await

解决方案


等待方法不会触发数据绑定过程。

而不是试图“禁用数据绑定过程,直到你设置DataContext”你应该DataContext立即设置,然后在你的异步方法返回并且你拥有所有信息后设置数据绑定属性。

确保您实现INotifyPropertyChanged了在属性更新时通知视图。


推荐阅读