Я работаю с наблюдаемой коллекцией класса Job
, который я определил. Я привязал метод для обработки события INotifyCollectionChanged
. MSDN говорит мне, что INotifyCollectionChanged
является «прослушивателем динамических изменений, например, когда элементы добавляются и удаляются или обновляется весь список», но я хотел бы прослушивать изменения свойств любого из классов заданий в коллекции, есть обработчик событий для этого?? Я понимаю, что есть интерфейс INotifyPropertyChanged
, но я хочу, чтобы он работал с коллекцией.
РЕДАКТИРОВАТЬ:
Честно говоря, меня это смущает, поэтому я должен дать больше справочной информации о том, что я делаю, чтобы получить ответ. У меня есть это свойство в классе "Работа":
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);
}
}
}
Этот класс задания на самом деле наследуется от класса назначения элемента управления телериком (который, как оказалось, реализует INotifyPropertyChanged). Из документации телерика я также получил приведенный выше код (без окна сообщения). Теперь, когда я изменяю это логическое значение 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;
Они оба из разных классов, которые используются для определения переопределения моего пользовательского поведения перетаскивания (из списка).