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