如何使用PropertyChanged将最新输入与初始值进行比较?

时间:2017-07-14 09:31:32

标签: c# xamarin.forms

我在xamarin表单app上课,我在其上实现了INotifyChanged。稍后此类将用于创建列表。该列表的数据来自mysql。该列表将是我的第三方dataGrid的项目源,名为sfdataGrid。列实际读数将显示db中的整数,并且可以在数据网格中进行编辑。但是新编辑的值必须大于db的值初始值。或者它应该恢复到初始值。如何将新值与初始值属性Changed?

进行比较
public class actualmeterreading : INotifyPropertyChanged
{
    private string _ID;
    private string _MachineMeterReadingID;
    private Int32 _ActualReading;
    private machinemeterreadinglist _MachineMeterReadingList;

    public actualmeterreading(string id, string machinemeterreadingid, Int32 actualreading, machinemeterreadinglist machinemeterreadinglist)
    {
        this._ID = id;
        this._MachineMeterReadingID = machinemeterreadingid;
        this._ActualReading = actualreading;
        this._MachineMeterReadingList = machinemeterreadinglist;
    }

    public actualmeterreading()
    {
        this._ID = string.Empty;
        this._MachineMeterReadingID = string.Empty;
        this._ActualReading = 0;
        this._MachineMeterReadingList = new machinemeterreadinglist();
    }

    public string ID
    {
        get { return _ID;}
        set { _ID = value;}
    }

    public string MachineMeterReadingID
    {
        get { return _MachineMeterReadingID;}
        set { _MachineMeterReadingID = value;}
    }

    public int ActualReading
    {
        get { return _ActualReading;}
        set {            
            _ActualReading = value;
            RaisePropertyChanged("ActualReading");
        }
    }

    public machinemeterreadinglist MachineMeterReadingList
    {
        get { return _MachineMeterReadingList;}
        set { _MachineMeterReadingList = value;}
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(String Name)
    {
        if (PropertyChanged != null)
            this.PropertyChanged(this, new PropertyChangedEventArgs(Name));
    }
}

1 个答案:

答案 0 :(得分:1)

public int ActualReading
{
    get { return _ActualReading;}
    set {    
        // only update if new value is bigger than old value  
        if (value > _ActualReading) {      
          _ActualReading = value;
          RaisePropertyChanged("ActualReading");
        }
    }
}