C# 调用属性更改在调用时回拨';的属性已更新

C# 调用属性更改在调用时回拨';的属性已更新,c#,wpf,uwp,dependency-properties,C#,Wpf,Uwp,Dependency Properties,我有一个a类,它有一些属性, 在类B中,我创建了A的一个对象,并将其设置为dependencProperty并为其注册propertyChangedCallBack。但它只是在重新创建对象时激发,而不是在更新对象时激发。 如何解决该问题,使其在某个对象的子属性(而不是整个对象)发生更改时仍被调用?没有内置的“深度链接”属性更改通知。你必须自己做这件事 您的class A可能包含另一个事件Changed(只是一个示例;可以随意命名),每次更改其成员时都会引发该事件 公共A类 { 私有字符串名称;

我有一个a类,它有一些属性, 在类B中,我创建了A的一个对象,并将其设置为
dependencProperty
并为其注册
propertyChangedCallBack
。但它只是在重新创建对象时激发,而不是在更新对象时激发。
如何解决该问题,使其在某个对象的子属性(而不是整个对象)发生更改时仍被调用?

没有内置的“深度链接”属性更改通知。你必须自己做这件事

您的
class A
可能包含另一个事件
Changed
(只是一个示例;可以随意命名),每次更改其成员时都会引发该事件

公共A类
{
私有字符串名称;
公共字符串名
{
获取{返回this.name;}
设置
{
if(值!=此.name)
{
this.name=值;
这个;
}
}
}
//…这里有更多的财产。。。
公共事件事件处理程序已更改;
私有无效提升更改()
{
this.Changed?.Invoke(this,EventArgs.Empty);
}
}
公共B级
{
公共属性A{get;set;}
}
然后,您的
class B
必须订阅
PropertyA
s
Changed
事件,然后通知外部世界有关
PropertyA
的更改。请记住正确处理对
属性a的更改

仅出于通知目的,不需要(也不需要额外使用)将
PropertyA
设置为从属属性,因此您可以坚持使用
INotyfyPropertyChanged


希望这有帮助。

property的属性未由propertyChangedCallBack处理。您的属性是指向class-a-object的指针,该类的属性在不更改对其a-objectI-want-onPropertyChange事件的Bs引用的情况下更改。public static readonly dependencProperty propertyProperty=dependencProperty.Register(“PropertyA”、typeof(A)、typeof(B)、new PropertyMetadata(null、OnPropertyChange));