当前位置: 首页 > news >正文

WPF MVVM模式下绑定两个ViewModel导致View不触发更新

正常是一个View对应一个ViewModel

然后View的DataContext是ViewModel。

View中的命令和显示数据都绑定在ViewModel中。

我在工作中遇到了一个错误,在一个ViewModel中改变属性的值,不会反馈到界面上。

调试得知,这个ViewModel中经过了两次构造,也就是生成了两个对象。

假设这两个ViewModel分别是VMA和VMB;

其中我的View的命令绑定在了VMA中的方法,View的显示数据数据绑定在了VMB中。

所以当我触发命令时,实际上是吧VMA中的数据更新了,VMB中并没有更新,导致界面数据不发生改变;

导致这种问题的原因是因为我在xaml文件中和xaml.cs都编写了绑定代码,但是我在xaml.cs文件中又重新获取了一个ViewModel对象。

xaml中:

界面后台绑定的对象是反序列化得到的。

xaml.cs中:

ViewModel是我重新在ioc容器中获取的。问题就出现在这里,反序列化得到一个,ioc容器中得到一个,导致混乱。

http://www.jsqmd.com/news/318837/

相关文章:

  • 高校院所科技成果转化的生态协同之道,数智平台引领产业与学术双赢
  • 【委托监控】【成交监控】
  • C++中的事件驱动编程
  • 晶圆级封装生产线封装装置多轴运动控制系统研究
  • 行为型模式:状态模式——嵌入式状态管理的优雅解决方案
  • 生态协同机制赋能高校成果转化,实现学术产业双赢
  • 提示工程架构师的「提示即代码」实践:3个DevOps案例,AI辅助开发效率提升200%
  • python基于微信的酒店餐饮点菜点餐小程序
  • 泛型编程与STL设计思想
  • 基于Jerk值限制的三阶匀加减速运动轨迹设计
  • Python异步编程入门:Asyncio库的使用
  • Python装饰器详解:让代码更优雅的魔法
  • Claude Code与OpenCode深度对比及使用指南
  • 高校院所科技成果转化数智服务平台:构建产学研协同新生态
  • 用Pandas处理时间序列数据(Time Series)
  • 使用Plotly创建交互式图表
  • ~/ 路径和绝对路径
  • 基于最小均方算法的半球谐振子特征参数辨识方法
  • C++中的策略模式高级应用
  • Claude Code 初体验:安装、配置与第一个项目
  • 现代C++多线程编程实战
  • C++中的观察者模式
  • 一天一个开源项目(第6篇):SuperClaude Framework - 增强 Claude Code 的专业配置框架
  • 大数据领域元数据管理:推动数据驱动的组织变革
  • 数据结构空间复杂度
  • 搜维尔科技:集成Tesollo DG-5F机械手的类人平台
  • 原来PixPin不止能截图!配置快捷键后,OCR和翻译也能一键搞定
  • 提示工程架构师带继任者的3大误区,第1个90%管理者都犯过
  • 自定义分配器实战
  • 【服务器】为安全考虑,已锁定该用户帐户,原因是登录尝试或密码更。改尝试过多。请稍候片刻再重试,或与系统管理员或技术支持联系。