Mvvmcross支持NotifyPropertyChanged事件,其中事件args包含旧值?

时间:2013-04-23 15:46:35

标签: c# mvvmcross

有一个UIHealthBar绑定到一个viewmodel属性,该属性从5更改为10.我想用填充颜色从旧值(5)到新值(10)进行动画处理。我怎么能用更好的方法在mvvmcross中做到这一点?

1 个答案:

答案 0 :(得分:0)

这听起来好像可以使用一对viewmodel属性来完成 - 也许是一个总是一起改变的元组 - 例如

public class MyViewModel : MvxViewModel
{
    public MyViewModel()
    {
        // subscribe for health updates here
    }

    public class HealthTuple
    {
        public double Old {get;set;}
        public double New {get;set;}
    }

    private HealthTuple _health; 
    public HealthTuple Health 
    {
       get { return _health; }
       set { _health = value; RaisePropertyChanged(() => Health); }
    } 

    private void OnNewHealth(HealthMessage message)
    {
        Health = new HealthTuple() { Old = _health.New, New = message.Value };
    }
}

您的自定义UIView - UIHealthBar可以显示单个属性或两个属性,您可以将这些属性绑定到ViewModel的运行状况值。然后,绘制/动画显示是正常的UI工具包