您必須存儲原始值。我正在使用以下模式。
假設你有一個像這樣
public class Model
{
public int ActualReading {get; set;}
}
一個模型,這樣的視圖模型(我刪除了更好的閱讀了INotifyPropertyChanged
部分)
public class ViewModel
{
private readonly Model MyModel;
private int _actualReading;
public int ActualReading
{
get { return _actualReading; }
set { _actualReading = value; }
}
public ViewModel(Model model)
{
MyModel = model;
ActualReading = model.ActualReading;
}
public Model GetModel()
{
MyModel.ActualReading = ActualReading;
return MyModel;
}
}
當您創建ViewModel
情況下,你用初始化相應的Model
實例。當你已經實現這個,你可以像這樣簡單的方式添加你的支票。
private int _actualReading;
public int ActualReading
{
get { return _actualReading; }
set
{
if (value >= MyModel.ActualReading)
{
_actualReading = value;
}
else
{
UserDialogs.Instance.Alert("Meter readings should not be smaller than previous value.", "Error", "Ok");
}
}
}
將它保存在第一集中的變量? –
從當是你的「第一次」的價值在其上的測量都應該是相對於一個上?在保存數據後,您是否允許更改爲原始高於第一個值但低於實際值? – Icepickle
是的,我會允許的。就像這樣,我的數據網格有很多行。每行都有一個來自數據庫的具有原始值的字段。原始值可以編輯,但編輯的值必須等於或大於原始值。假設原來是10.現在我編輯它到30,然後我移動到下一行。如果我來之前編輯的行,它會顯示30.我不能將值30編輯以較小的數字比30,因爲現在30已經取代10該行原來的值。 – batwing