gpt4 book ai didi

c# - call property change 当它的属性更新时回调

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:50 24 4
gpt4 key购买 nike

我有一个具有某些属性的 A 类,在 B 类中,我创建了 A 的对象并将其设为 DependencyProperty 并为其注册 propertyChangedCallBack。但它只是在重新创建 A 的对象时触发,而不是在更新时触发。即使更改了 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; }
}

您的 B 类 然后必须订阅 PropertyAChanged 事件,然后通知外界关于 的更改属性A。请记住正确处理对 PropertyA 的更改。

仅出于通知目的,没有必要(也没有额外使用)使 PropertyA 成为 DependencyProperty,因此您可以坚持使用 INotyfyPropertyChanged

希望这对您有所帮助。

关于c# - call property change 当它的属性更新时回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40560812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com