私はxamarinフォームアプリケーションでデータグリッドを持っていて、編集可能なカラムを持っています。列の値はMySqlデータベースからのもので、ユーザーは値を変更してdbに格納できます。私はIPropertyChangedインターフェイスを使って、ユーザーが値を変更できるようにしました。値の編集には1つの条件があります。新しい値は元の値と同じかそれより大きくなければなりません。私の問題は、元の値より大きい値を入力するたびに値を以前の値に再び編集できないことです。たとえば、元の値は10です。私が入力する新しい値は30です。値を再び変更したい場合は20に設定しますが、元の値は10と20ではなく30ですどのように私は元の値を保持し、それと比較することができますか?元の値にロールバックする方法iPropertyChanged? C#
0
A
答えて
1
元の値を保存する必要があります。私は次のパターンを使用しています。
あなたはこの
public class Model
{
public int ActualReading {get; set;}
}
ようなモデルと、このようなのviewmodelを持っていると仮定すると、あなたがViewModel
インスタンスを作成するときに、あなたがして、それを初期化し
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;
}
}
(私はより良い読書のためのINotifyPropertyChanged
部分を削除しました)対応する。これを実装すると、このような簡単な方法で小切手を追加することができます。
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");
}
}
}
関連する問題
- 1. Cロールバックする方法
- 2. Neo4jの元に戻す/やり直す/ロールバックする方法は?
- 3. カスケードIPropertyChanged
- 4. Git:画像に変更をロールバック/元に戻す方法は?
- 5. 例外を元に戻し、C#で値を返す方法は?
- 6. Cでバインド元にテキストボックス値を戻す方法
- 7. Vuejsで元の値に戻す方法
- 8. Google Chromeにロールバックする方法55
- 9. Xcode 6.4、Carthageにロールバックする方法
- 10. git pull後にロールバックする方法
- 11. Joomla 3.6.2を3.6.0にロールバックする方法
- 12. 元に戻す「このコミットにロールバックする」
- 13. C#が元の値
- 14. vb.netのデータをロールバックする方法
- 15. ピッカー値を復元する方法
- 16. anglefire2 4.0をロールバックする方法、anglefire 2に戻す方法2.0?
- 17. ロールバックでC#
- 18. Liquibaseコマンドラインで特定の変更セットにロールバックする方法
- 19. C#のスコープで値をバックアップ/復元する方法はありますか?
- 20. PostgreSQLでアップデートをロールバックする方法
- 21. BCPインポートをロールバックする方法
- 22. ssisでトランザクションをロールバックする方法は?
- 23. Googleコードでロールバックする方法
- 24. npmをロールバックする方法は?
- 25. ETLプロシージャをロールバックする方法は?
- 26. TFS 2017リリースをロールバックする方法
- 27. C#を使用してSQL Server 2005データベースを復元します。ロールバックの問題
- 28. この整数を元の値に分割する方法は?
- 29. 位置2の3次元配列にアクセスする方法C++
- 30. ロールバック機能の実装方法は?
最初のセットで変数に保存しますか? –
あなたの「最初の」値はいつ測定値が比較されるべきであるか?データを保存した後も最初の値よりも高く、実際の値よりも低い値に変更することを許可しますか? – Icepickle
はい、私はそれを許可します。これは私のデータグリッドにはたくさんの行があります。各行には、データベースの元の値を持つ1つのフィールドがあります。元の値は編集できますが、編集した値は元の値と同じかそれより大きくなければなりません。オリジナルを10としましょう。今は30に編集してから、次の行に移動します。以前に編集された行に来ると、30が表示されます。30を30より小さい数値に編集することはできません。 – batwing