Неортодоксальный подход может использовать структуру AOP, такую как PostSharp, чтобы «переплетать» обработчик до/после вызова аксессуара, который запускает событие.
Вы создаете внешний класс, который содержит код обработки до и/или после обработки вашего свойства, проверьте, изменилось ли значение свойства между pre и post, и поднимите событие.
Помните, что, принимая значение для сравнения (внутри кода вашего обработчика), вы можете попасть в бесконечный цикл (вы вызываете аксессуар свойства, который вызывает обработчик AOP, который вызывает аксессор и т. Д.), поэтому вам может понадобиться задуматься над классом, содержащим это свойство, чтобы получить поле поддержки.
Это так .NET 1.1 :) Как Марк Гравелл сказал ... много работы, мало пользы. –