我正在使用我已定義的Job
類的可觀察集合。我已經綁定了一個方法來處理INotifyCollectionChanged
事件。 MSDN告訴我INotifyCollectionChanged
是一個「動態變化的監聽器,比如當項目被添加或刪除或整個列表刷新時」,但我想傾聽集合中任何作業類的屬性更改,有沒有這個事件處理程序?我知道有一個INotifyPropertyChanged
接口,但我希望這個工作在一個集合。ObservableCollections和C#中屬性的更改
編輯:
我對這個困惑說實話,所以我應該給我在做什麼,所以我可以得到我的回答給更多的背景資料。我有一個「作業」類此屬性:
public Boolean IsPlanned
{
get
{
return this.Storage<Job>().isPlanned;
}
set
{
var storage = this.Storage<Job>();
if (storage.isPlanned != value)
{
storage.isPlanned = value;
this.OnPropertyChanged(() => this.isPlanned);
MessageBox.Show("IsPlanned property was changed on one of the jobs " + this.Subject);
}
}
}
此作業類實際上從Telerik的控制的任命類(這只是恰巧執行INotifyPropertyChanged)繼承。從telerik文檔我也得到了上面的代碼(減去消息框)。現在,當我改變這個布爾值ONCE時,該消息框行被執行5次。
任何幫助讚賞!
編輯2:被IsPlanned路徑被改變:
PresentationManager.Instance.AllJobs.Single(o => o.JobGuid.Equals(((Job)state.DraggedAppointments.First()).JobGuid)).IsPlanned = true;
PresentationManager.Instance.AllJobs.Single(o => o.JobGuid.Equals(((Job)payload.DraggedAppointments.First()).JobGuid)).IsPlanned = false;
這些都是從被用來定義覆蓋的爲我定製的拖放行爲(從Control)不同類別。
你是什麼意思「我想要這個工作在一個集合」?添加,刪除收藏項目? – ADIMO
您可以包含更改IsPlanned屬性的代碼路徑嗎? –
注意:我剛剛添加的第一行是那個導致消息框顯示5次的行,第二行工作正常(只顯示一次msg)。 –