Ios 是否有一种方法可以登记一种财产依赖于另一种财产?

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 {

我的意思是:假设ViewModel上有
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]; }
    }
请注意,double
RaisePropertyChanged
调用
IsCompliant
的setter,以触发绑定到
ShowWarning
的视图的更新。但我觉得这很糟糕,因为每个属性在ViewModel中都有少量的调用

我更喜欢的是有一个可以在构造函数中注册的依赖关系表,并让MVVMCross跟踪这样一个事实:如果属性a发生了变化,那么属性B也会发生变化,依此类推。通过这种方式,每个属性都跟踪自身,并且类作为一个整体管理属性之间的依赖关系


这是否存在?这是一个合理的想法,还是有更好的方法来实现我的目标?

没有“一种方法”可以做到这一点,但有一些人尝试了不同的技术,包括通用的InotifyProperty更改拦截、一些基于属性的扩展和一些面向方面的编程技术

有关这些方面的一些示例和信息,请参见:

  • (via)

没有“一种方法”可以做到这一点,但有一些人尝试过不同的技术,包括通用的INotifyPropertyChanged拦截、一些基于属性的扩展和一些面向方面的编程技术

有关这些方面的一些示例和信息,请参见:

  • (via)

哇,要吸收的东西太多了。我将努力通过这些链接,看看什么对我最合适。谢谢哇,要吸收的东西太多了。我将努力通过这些链接,看看什么对我最合适。谢谢