You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF使用MVVM模式时代码更新ViewModel后View未同步更新问题

问题原因

  • XAML绑定语法错误:给出的TextBox绑定表达式末尾缺少闭合的},导致WPF绑定引擎无法正确解析绑定路径,无法读取ViewModel的初始值。
  • 构造函数赋值语法错误:PaymentFactor.Price=350,000; 不符合C#数值字面量编写规范,代码中数字不能直接使用逗号作为千分位分隔符,该代码存在编译错误,赋值逻辑未生效,Price保留decimal类型的默认值0。
  • 类名实例化错误:你定义的支付数据类为Payment,但在PaymentFactorViewModel构造函数中实例化的是不存在的PaymentFactor类,导致PaymentFactor属性未被正确初始化,其内部属性值均为默认值。

修复步骤

  1. 修正XAML绑定代码,补全表达式闭合符:
<TextBox x:Name="txtPrice" Text="{Binding PaymentFactor.Price,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
  1. 修正数值赋值语法,去掉千分位逗号,decimal类型建议增加m后缀明确标识类型:
PaymentFactor.Price = 350000m;
  1. 修正构造函数中的实例化类名,和属性声明的类型保持一致:
public PaymentFactorViewModel()
{
    PaymentFactor = new Payment();
    PaymentFactor.Price = 350000m;
}
  1. 额外校验:确保View的DataContext已正确绑定到PaymentFactorViewModel的实例,可在View的后台构造函数中添加如下代码:
public YourViewName()
{
    InitializeComponent();
    DataContext = new PaymentFactorViewModel();
}

内容的提问来源于stack exchange,提问作者Hossein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:15:04