WPF客户端聊天应用:INotifyPropertyChanged绑定仅生效一次问题求助
问题解决:WPF数据绑定仅同步初始值,后续更新不生效
核心问题是ObservableObject中的方法名拼写错误,导致PropertyChanged事件从未被触发:
你的ObservableObject类里定义的方法是OnPropertyChaned(末尾少了一个字母g),但在MainViewModel的属性setter里调用的是OnPropertyChanged(),两者名称不匹配,所以属性更新时根本没有通知视图。
修正后的ObservableObject代码
class ObservableObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } }
额外检查点
- 确认
MainViewModel的实例是唯一的,没有在后续操作中重新创建新的实例覆盖DataContext - 如果是在异步线程中修改属性值,需要切换回UI线程再更新(可以用
Application.Current.Dispatcher.Invoke) - 检查XAML中的绑定路径是否正确,比如
LastSeen属性是否也遵循了相同的INotifyPropertyChanged实现规范
内容的提问来源于stack exchange,提问作者mehmet sezer
相关产品推荐
相关产品推荐

