コードで「フラグをクリア」しようとしています。UI に継続的に表示されるデータがあり、コードが「クリア」ボタンで実行されているときに、ユーザーがデータをクリアできるようにしたいと考えています。UI スレッドでデータを収集および更新する 2 番目のスレッドがあります。プロパティでフラグを使用して、「クリア フラグ」が true であると判断された場合に所定の値になるようにしようとしました。クリアボタンを押すと、「クリアフラグ」をtrueに設定してデータをクリアしますが、問題はいつ完了したかを知り、完了時に「クリアフラグ」をfalseに戻すことです。
private bool _clear;
public bool Clear
{
get
{
return _clear;
}
set
{
_clear = value;
OnPropertyChanged("Clear");
if (value)
{
OnPropertyChanged(String.Empty);
}
}
}
private int _motorRPM;
public int MotorRPM
{
get
{
return _motorRPM;
}
set
{
_motorRPM = value;
OnPropertyChanged("MotorRPM");
}
}
private int _aveRPM;
public int AveRPM
{
get
{
return _aveRPM;
}
set
{
if (Clear)
{
_aveRPM = 0;
}
else
{
_aveRPM = (_aveRPM + value) / 2;
}
OnPropertyChanged("AveRPM");
}
}
private int _minRPM = Int32.MaxValue;
public int MinRPM
{
get
{
return _minRPM;
}
set
{
if (Clear)
{
_minRPM = Int32.MaxValue;
}
else
{
if (value < _minRPM)
{
_minRPM = value;
}
}
OnPropertyChanged("MinRPM");
}
}
private int _maxRPM;
public int MaxRPM
{
get
{
return _maxRPM;
}
set
{
if (Clear)
{
_maxRPM = 0;
}
else
{
if (value > _maxRPM)
{
_maxRPM = value;
}
}
OnPropertyChanged("MaxRPM");
}
}
ご覧のとおり、「Clear」プロパティがあり、true に設定すると OnPropertyChanged(String.Empty) を使用してすべてのプロパティの更新を呼び出し、「Clear」が true の場合に各プロパティが既知の値になります。
すべての PropertyChanged イベントが完了したときに Clear を false に戻すにはどうすればよいですか?