我正在嘗試在我的代碼中執行「清除標記」。我的數據不斷顯示在用戶界面上,我希望用戶能夠在代碼運行時用「清除」按鈕清除數據。我有第二個線程收集和更新UI線程上的數據。我試圖在屬性中使用一個標誌,當它看到「清除標誌」是真實的,以便達到預定值。當按下清除按鈕時,我將「清除標誌」設置爲真,並清除數據,但是我的問題是知道何時完成,並在完成時將「清除標誌」設置回false。在PropertyChanged事件完成後執行事件
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");
}
}
正如你可以看到我有一個「清除」屬性,當設置爲true,將調用一個更新OnPropertyChanged(的String.Empty)的所有屬性,每個屬性休息爲已知值時,「清除」是真的。
如何設置清除回假,當所有的PropertyChanged事件做了什麼?
咦?做'清除=假';就像我猜你做了'clear = true'來設置它...或者你的代碼缺少一些重要的部分/信息? – Niclas 2013-04-29 21:09:47
啊。對不起,誤解了你:)對我來說,你有點濫用屬性改變機制。爲什麼不使用單個命令並讓它重置所有屬性,並讓每個屬性都處理自己的PropertyChanged? – Niclas 2013-04-29 21:16:32