子属性中的 PropertyChanged [重复]

Posted

技术标签:

【中文标题】子属性中的 PropertyChanged [重复]【英文标题】:PropertyChanged in child properties [duplicate] 【发布时间】:2019-11-07 11:33:08 【问题描述】:

当我在第 2 层或第 3 层绑定到子属性,并且子属性发生更改时,视图不会更新。例如

当 property1 更改时,视图不会从 Propertychanged 获得更新。

这是示例对象:


 public string property1 get;set;
 public string property2 get;set;

当我想要更新视图时,我必须这样做:


 private string _property1;
 public string property1
   
     get
      return _property1;
     
     set
      _property1 = value;
      OnPropertyChanged("property1");
     
   

我有很多属性,用重复的代码更改每个属性非常烦人,所以我有一个公共的 OnPropertyChanged 方法并将 null 传递给它,所以一切都会改变。它可以工作,但我认为这不是一个好的高性能解决方案来告诉视图,当只有一个属性发生变化时,一切都会发生变化。

有人知道更好的解决方案吗?

【问题讨论】:

好吧不行,如果属性改变需要通知UI 【参考方案1】:

您可以使用PropertyChanged.Fody,这将在实现 INotifyPropertyChanged 的​​类中自动编写 getter 和 setter。

【讨论】:

以上是关于子属性中的 PropertyChanged [重复]的主要内容,如果未能解决你的问题,请参考以下文章

DependencyProperty 未在 PropertyChanged 上更新

如果属性是从另一个进程更新的,PropertyChanged 不起作用?

在 Winform 中,为啥当我在一个数据源上调用 PropertyChanged 时所有绑定的属性都会更新?

WPF PropertyChanged 事件未触发/更新文本框

使用PropertyChanged委托提出多个PropertyChanged事件的问题

WPF 在 ViewModel.PropertyChanged 事件上更改按钮内容