gpt4 book ai didi

c# - 属性取决于另一类的属性

转载 作者:行者123 更新时间:2023-12-03 10:28:44 26 4
gpt4 key购买 nike

我有一个使用 Fody 将 INotifyPropertyChanged 注入(inject)属性的 Windows Phone 8 应用程序。
我有属性 A 的 Class First,它绑定(bind)到 View 中的文本框:

[ImplementPropertyChanged]
public class First
{
public int A { get; set; }

public int AA { get {return A + 1; } }
}

第二类属性 B 取决于属性 A(也绑定(bind)到文本框):
[ImplementPropertyChanged]
public class Second
{
private First first;

public int B { get {return first.A + 1; } }
}

更新 A 和 AA 工作正常,但是当 first.A 更改时 B 不会自动更新。是否有一种简单而干净的方法可以使用 fody 实现这种自动更新,还是我必须创建自己的事件来处理它?

最佳答案

我对 Fody 不熟悉,但我怀疑这是因为 Second.B 上没有二传手。 Second 应该订阅 First 中的更改,如果 First.A 是被更改的属性,那么应该使用 B 的(私有(private))setter。

或者订阅 First 然后调用 B 属性更改事件:

[ImplementPropertyChanged]
public class Second
{
private First first;

public int B { get {return first.A + 1; } }

public Second(First first)
{
this.first = first;
this.first.OnPropertyChanged += (s,e) =>
{
if (e.PropertyName == "A") this.OnPropertyChanged("B");
}
}

关于c# - 属性取决于另一类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940874/

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