Ios 是否有一种方法可以登记一种财产依赖于另一种财产?
我的意思是:假设ViewModel上有Ios 是否有一种方法可以登记一种财产依赖于另一种财产?,ios,xamarin.ios,mvvmcross,Ios,Xamarin.ios,Mvvmcross,我的意思是:假设ViewModel上有IsCompliant和ShowWarning属性。UI有一些绑定到ShowWarning的消息,如果ViewModel不兼容,以及其他一些条件,我们希望显示警告。所以,我是这样编码的: private bool mbIsCompliant; public bool IsCompliant { get { return mbIsCompliant; } set {
IsCompliant
和ShowWarning
属性。UI有一些绑定到ShowWarning的消息,如果ViewModel不兼容,以及其他一些条件,我们希望显示警告。所以,我是这样编码的:
private bool mbIsCompliant;
public bool IsCompliant
{
get { return mbIsCompliant; }
set
{
mbIsCompliant = value;
RaisePropertyChanged (() => IsCompliant);
RaisePropertyChanged (() => ShowWarning);
}
}
public bool ShowWarning
{
get { return !IsCompliant && [other conditions]; }
}
请注意,doubleRaisePropertyChanged
调用IsCompliant
的setter,以触发绑定到ShowWarning
的视图的更新。但我觉得这很糟糕,因为每个属性在ViewModel中都有少量的调用
我更喜欢的是有一个可以在构造函数中注册的依赖关系表,并让MVVMCross跟踪这样一个事实:如果属性a发生了变化,那么属性B也会发生变化,依此类推。通过这种方式,每个属性都跟踪自身,并且类作为一个整体管理属性之间的依赖关系
这是否存在?这是一个合理的想法,还是有更好的方法来实现我的目标?没有“一种方法”可以做到这一点,但有一些人尝试了不同的技术,包括通用的InotifyProperty更改拦截、一些基于属性的扩展和一些面向方面的编程技术 有关这些方面的一些示例和信息,请参见:
- (via)
- (via)