gpt4 book ai didi

c# - 如何执行容器ViewModel与包含的ViewModel之间的通信?

转载 作者:行者123 更新时间:2023-12-03 11:00:07 26 4
gpt4 key购买 nike

请考虑以下代码

    class VMContainer:INotifyPropertyChanged
{
Type t;
VMContained contained;

public Type T
{
get
{
return this.t;
}
set
{
this.t = value;
this.OnPropertyChanged("T");
}
}
........
........
........

}

VMContainer和VMContained是两个ViewModel类。
现在,每当Container类属性T更改时,我就需要更改成员实例“contained”的一个属性(例如,P1)。该怎么办?
请指教。

最佳答案

最简单的方法就是在T的setter中设置值:

public Type T
{
get
{
return this.t;
}
set
{
this.t = value;
contained.P1 = CalculateContainedValue();
this.onPropertyChanged("T");
}
}

更新
public Type T1
{
get
{
return this.t1;
}
set
{
this.t1 = value;
contained.P1 = CalculateContainedValue();
this.OnPropertyChanged("T1");
}
}

public Type T2
{
get
{
return this.t2;
}
set
{
this.t2 = value;
contained.P1 = CalculateContainedValue();
this.OnPropertyChanged("T2");
}
}

private Type CalculateContainedValue()
{
return /* Some combination of T1, T2, ... */ ;
}

关于c# - 如何执行容器ViewModel与包含的ViewModel之间的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14597383/

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