如何在其他线程中创建主线程对象并添加至集合?
排查WPF绑定更新异常的过程
先跟大家分享下我的排查思路和结果:
- 我先搭建了一个最小复现示例验证核心流程:
- 在
Timer.Elapsed事件回调中创建自定义对象 - 通过
Invoke方法切换到UI线程更新ViewModel里的集合 - 在DataTemplate中用DataPiping把只读GUI依赖属性单向绑定到ViewModel的属性
- 全程没有冻结新创建的对象
- 在
结果这个示例运行完全正常,说明之前怀疑的核心流程逻辑是没问题的,问题肯定出在实际项目的其他细节里。
后来终于揪出了核心问题:我的自定义对象里包含一个Brush属性!这个属性的特殊处理逻辑才是导致绑定更新异常的罪魁祸首。
内容的提问来源于stack exchange,提问作者Sven.L
相关产品推荐
相关产品推荐

