当属性已更新时,调用属性更改回调
我有一个具有一些属性的类A, 在类B中,我创建了一个对象A并将它创建为DependencyProperty
并为其注册propertyChangedCallBack
。但是当它更新时不是在重新创建对象时触发。 即使当A的子属性被改变而不是整个对象时,我怎样才能解决它呢?当属性已更新时,调用属性更改回调
没有内置的“深度链接”属性更改通知。你必须自己做。
你class A
可能包含另一个事件Changed
(只是一个例子,只要你喜欢的名字吧),这是上调,每次它的一个成员改变
public class A
{
private string name;
public string Name
{
get { return this.name; }
set
{
if (value != this.name)
{
this.name = value;
this.RaiseChanged();
}
}
}
// ... more properties here ...
public event EventHandler Changed;
private void RaiseChanged()
{
this.Changed?.Invoke(this, EventArgs.Empty);
}
}
public class B
{
public A PropertyA { get; set; }
}
你class B
则必须订阅PropertyA
小号Changed
事件,并通知外部世界有关更改为PropertyA
。请记得正确处理对PropertyA
的更改。
仅用于通知目的,不需要(并且无需额外使用)使PropertyA
成为DependencyProperty,因此您可以坚持使用INotyfyPropertyChanged
。
希望这会有所帮助。
我想要OnPropertyAChange事件触发。 public static readonly DependencyProperty PropertyAProperty = DependencyProperty.Register(“PropertyA”,typeof(A),typeof(B),new PropertyMetadata(null,OnPropertyAChange)); – Maryam
财产的财产不beeing propertyChangedCallBack处理。你的属性是一个指向A类对象的指针,它的属性发生变化而不会改变B对其A对象的引用 – swe