C # - Как определить, изменилось ли свойство - PullRequest
4 голосов
/ 10 февраля 2010

Мне нужно знать, изменяется ли публичное свойство (в котором есть getter & setter). Свойство находится в простом классе (без пользовательского элемента управления / компонента и т. Д.).
Есть ли элегантный способ подписаться на какое-то событие, которое уведомляет об изменении свойства?
Я попытался увидеть, что делает Microsoft в их объекте Binding (с помощью отражателя), и это привело меня к исследованию метода PropertyDescriptor.AddValueChanged, но он мне не помог. возможно, это работает только для компонентов / пользовательских элементов управления ...

Есть предложения?

Спасибо
Ади Барда

Ответы [ 2 ]

12 голосов
/ 10 февраля 2010

Просто реализуйте интерфейс INotifyPropertyChanged:
http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

Это довольно известный интерфейс, который используется API привязки. Просто следуйте примеру реализации на этой странице MSDN.

2 голосов
/ 10 февраля 2010

INotifyPropertyChanged должен работать, но вы также можете просто создать свое собственное событие, специфичное для свойства, без перетаскивания в system.componentmodel.

...