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

WPF OneWay绑定源属性变更后TextBox未同步更新问题咨询

问题根因
  • 核心原因是你的Person类未实现INotifyPropertyChanged接口:WPF绑定系统依赖该接口的PropertyChanged事件接收源属性的更新通知,你修改Name属性后没有向UI发送变更通知,因此TextBox不会主动刷新内容。
  • 次要问题是XAML绑定中的Mode=oneWay写法不规范,绑定Mode的枚举标准写法为OneWay(首字母大写),虽然XAML解析器通常兼容小写写法,但为了避免潜在解析异常建议修正。
修复代码

1. 修正Person类实现INotifyPropertyChanged接口

首先引入命名空间:
using System.ComponentModel;
然后修改Person类代码:

public class Person : INotifyPropertyChanged
{
    private string nameValue;
    public string Name
    {
        get { return nameValue; }
        set 
        { 
            nameValue = value;
            // 触发属性变更通知
            OnPropertyChanged(nameof(Name));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

2. 修正XAML绑定写法(可选,建议修改)

<TextBox IsReadOnlyCaretVisible="True" AutomationProperties.Name="keyIdTextBox" Text="{Binding Path=Name, Mode=OneWay}"/>
验证效果

修改完成后重新运行程序,点击Open按钮时,Name属性变更会触发通知,TextBox会自动同步显示为Lenny。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:06