在我的模型中,我有屬性,我想執行一些額外的代碼,當屬性被更改。我想將新值和屬性名稱添加到我的數據庫。我也想保留當前報警列表(值等於true)。覆蓋RaisePropertyChanged來執行附加代碼
public Boolean ActionAlarmLowLow
{
get
{
return _ActionAlarmLowLow;
}
set
{
if (value != this._ActionAlarmLowLow)
{
Boolean oldValue = _ActionAlarmLowLow;
_ActionAlarmLowLow = value;
RaisePropertyChanged("ActionAlarmLowLow", oldValue, value, true);
}
}
}
我該如何正確地做到這一點? 我想知道如果我要補充的兩行代碼的財產:
DB.Log.addLogItem("ActionAlarmLowLow", value);
AlarmList.UpdateItem("ActionAlarmLowLow", value);
或者如果我能以某種方式延長/覆蓋RaisePropertyChanged和特定的屬性做一些額外的東西在其他地方。 I.e打電話叫做
RaisePropertyChangedWriteToDbUpdateAlarmList();`
是什麼阻止你在RaisePropertyChanged之後觸發你自己的事件?只需在那裏再次打電話給您自己的活動,並在那裏處理數據庫電話......或者,您可能正在尋找什麼? http://stackoverflow.com/questions/15246108/how-can-i-raisepropertychanged-on-property-change – MaxOvrdrv
它看起來像你已經知道答案。如果它是一個單獨的屬性,只需在它的setter中添加這些行。如果您需要多個屬性,則創建一個幫助器方法,記錄,更新和調用'RaisePropertyChanged'。 –
這是需要此功能的多個屬性。每個代碼有一兩行額外的代碼似乎是額外的工作。這就是爲什麼即時通訊要求如何實現自定義RaisePropertyChangedWriteToDbUpdateAlarmList();'這可以同時。我認爲傑根已經回答了有關力學的問題。 – Snovva1