0
存在被綁定到從5改變爲10分,我想從到新的值(10)中的舊值(5)用填充顏色進行動畫它一個視圖模型特性的UIHealthBar。我怎樣才能用mvvmcross做更好的方法?Mvvmcross支持NotifyPropertyChanged事件,其中事件參數包含舊值嗎?
存在被綁定到從5改變爲10分,我想從到新的值(10)中的舊值(5)用填充顏色進行動畫它一個視圖模型特性的UIHealthBar。我怎樣才能用mvvmcross做更好的方法?Mvvmcross支持NotifyPropertyChanged事件,其中事件參數包含舊值嗎?
這聽起來像它可能有一對視圖模型的屬性來實現 - 也許是永遠改變在一起的元組 - 例如
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
可以公開一個單一的屬性或兩個屬性,您可以綁定這些對視圖模型的健康值。繪圖/動畫顯示的是那麼「正常的UI套件的工作」
我看到實現這個直接上mvvmlight代碼「無效RaisePropertyChanged(字符串propertyName的,T屬性oldValue,T NEWVALUE,布爾廣播)」 –
2013-04-24 01:50:06
可以使用INPC發送自定義propertychangedmessage如果你想 - 但沒有一個標準的Windows控件知道該怎麼做與擴展的消息,也不做任何,我已經延長了MVX的標準Android或iOS控制。如果你認爲支持這一點很重要,那麼你可以自己實現它 - 這只是一個自定義的eventargs類。也歡迎您打開GitHub上一個功能要求 - 但我不親自指望有很多使用情況下使用這個,所以我不親自期望這是高優先級 – Stuart 2013-04-24 06:22:54
實際看到https://github.com/ ericschultz/GalaSoft.MvvmLight/BLOB /主/ GalaSoft.MvvmLight/GalaSoft.MvvmLight%20(NET35)/ObservableObject.cs我不認爲mvvmlight實際發送的屬性oldValue和NEWVALUE給我看看UI無論是 – Stuart 2013-04-24 06:29:46