Mvvmcross支持NotifyPropertyChanged事件,其中事件参数包含旧值
本文关键字:事件 参数 包含旧 支持 NotifyPropertyChanged Mvvmcross | 更新日期: 2023-09-27 18:10:25
有一个UIHealthBar,它被绑定到一个viewmodel属性,从5改变到10。我想用填充颜色将它从旧值(5)动画到新值(10)。我如何用更好的方法在mvvmcross中做到这一点?
这听起来像是可以用一对视图模型属性来完成的-也许是一个总是一起更改的元组-例如
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的Health值。然后绘制/动画显示是"正常的UI工具包工作"